certbot を実行しているのは、cron なのか systemd なのか。

サーバ移行のついでに

Let's Encrypt の更新スクリプトを

certbot なる簡単ツールに入れ替えます。

certbot

👉 Certbot 

最近は、

systemd なるものでスケジュール実行したりするのですね。

無事、登録できました。


# systemctl -t timer
  UNIT                         LOAD   ACTIVE SUB     DESCRIPTION
  anacron.timer                loaded active waiting Trigger anacron every hour
  apt-daily-upgrade.timer      loaded active waiting Daily apt upgrade and clean activities
  apt-daily.timer              loaded active waiting Daily apt download activities
  certbot.timer                loaded active waiting Run certbot twice daily
  e2scrub_all.timer            loaded active waiting Periodic ext4 Online Metadata Check for All Filesystems
  fstrim.timer                 loaded active waiting Discard unused blocks once a week
  fwupd-refresh.timer          loaded active waiting Refresh fwupd metadata regularly
  logrotate.timer              loaded active waiting Daily rotation of log files
  man-db.timer                 loaded active waiting Daily man-db regeneration
  motd-news.timer              loaded active waiting Message of the Day
  phpsessionclean.timer        loaded active waiting Clean PHP session files every 30 mins
  systemd-tmpfiles-clean.timer loaded active waiting Daily Cleanup of Temporary Directories

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

12 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.


# systemctl list-timers
NEXT                        LEFT          LAST                        PASSED        UNIT                         ACTIVATES
Tue 2021-03-16 13:34:46 JST 2min 41s left Tue 2021-03-16 12:32:29 JST 59min ago     anacron.timer                anacron.service
Tue 2021-03-16 13:39:00 JST 6min left     Tue 2021-03-16 13:09:04 JST 23min ago     phpsessionclean.timer        phpsessionclean.service
Tue 2021-03-16 17:04:24 JST 3h 32min left Tue 2021-03-16 05:22:36 JST 8h ago        apt-daily.timer              apt-daily.service
Tue 2021-03-16 17:44:41 JST 4h 12min left Mon 2021-03-15 17:44:41 JST 19h ago       systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Tue 2021-03-16 19:39:53 JST 6h left       Tue 2021-03-16 11:14:48 JST 2h 17min ago  motd-news.timer              motd-news.service
Tue 2021-03-16 20:53:59 JST 7h left       Tue 2021-03-16 09:19:17 JST 4h 12min ago  certbot.timer                certbot.service
Tue 2021-03-16 21:38:12 JST 8h left       Tue 2021-03-16 08:39:27 JST 4h 52min ago  fwupd-refresh.timer          fwupd-refresh.service
Wed 2021-03-17 00:00:00 JST 10h left      Tue 2021-03-16 00:00:04 JST 13h ago       logrotate.timer              logrotate.service
Wed 2021-03-17 00:00:00 JST 10h left      Tue 2021-03-16 00:00:04 JST 13h ago       man-db.timer                 man-db.service
Wed 2021-03-17 06:04:39 JST 16h left      Tue 2021-03-16 06:37:26 JST 6h ago        apt-daily-upgrade.timer      apt-daily-upgrade.service
Sun 2021-03-21 03:10:33 JST 4 days left   Sun 2021-03-14 03:10:36 JST 2 days ago    e2scrub_all.timer            e2scrub_all.service
Mon 2021-03-22 00:00:00 JST 5 days left   Mon 2021-03-15 00:00:04 JST 1 day 13h ago fstrim.timer                 fstrim.service

12 timers listed.

あれ、

cron でも実行してたよな?


# ls -l /etc/cron.d/
total 20
-rw-r--r-- 1 root root 285 Jul 17  2019 anacron
-rw-r--r-- 1 root root 775 Oct 26 23:42 certbot
-rw-r--r-- 1 root root 201 Feb 14  2020 e2scrub_all
-rw-r--r-- 1 root root 712 Mar 27  2020 php
-rw-r--r-- 1 root root 190 Aug  1  2020 popularity-contest


# journalctl | grep certbot
Mar 14 12:00:01 example-host CRON[64218]: (root) CMD (test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew)
Mar 14 20:22:33 example-host systemd[1]: certbot.service: Succeeded.
Mar 15 00:00:01 example-host CRON[70825]: (root) CMD (test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew)
Mar 15 01:22:23 example-host systemd[1]: certbot.service: Succeeded.
Mar 15 12:00:01 example-host CRON[76346]: (root) CMD (test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew)
Mar 15 12:04:40 example-host systemd[1]: certbot.service: Succeeded.
Mar 16 00:00:01 example-host CRON[80612]: (root) CMD (test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew)
Mar 16 09:19:18 example-host systemd[1]: certbot.service: Succeeded.
Mar 16 12:00:01 example-host CRON[85401]: (root) CMD (test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew)


# journalctl -r -u cron | grep certbot
Mar 16 00:00:01 example-host CRON[80612]: (root) CMD (test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew)
Mar 15 12:00:01 example-host CRON[76346]: (root) CMD (test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew)
Mar 15 00:00:01 example-host CRON[70825]: (root) CMD (test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew)
Mar 14 12:00:01 example-host CRON[64218]: (root) CMD (test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew)
Mar 14 00:00:01 example-host CRON[58784]: (root) CMD (test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew)
Mar 12 12:00:01 example-host CRON[34259]: (root) CMD (test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew)
Mar 12 00:00:01 example-host CRON[29111]: (root) CMD (test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew)
Mar 11 12:00:01 example-host CRON[22432]: (root) CMD (test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew)
Mar 10 00:00:01 example-host CRON[8757]: (root) CMD (test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew)


# journalctl -r -u certbot
-- Logs begin at Mon 2021-03-08 12:55:35 JST, end at Tue 2021-03-16 13:23:16 JST. --
Mar 16 09:19:18 example-host systemd[1]: Finished Certbot.
Mar 16 09:19:18 example-host systemd[1]: certbot.service: Succeeded.
Mar 16 09:19:17 example-host systemd[1]: Starting Certbot...
Mar 15 12:04:40 example-host systemd[1]: Finished Certbot.
Mar 15 12:04:40 example-host systemd[1]: certbot.service: Succeeded.
Mar 15 12:04:39 example-host systemd[1]: Starting Certbot...
Mar 15 01:22:23 example-host systemd[1]: Finished Certbot.
Mar 15 01:22:23 example-host systemd[1]: certbot.service: Succeeded.
Mar 15 01:22:23 example-host systemd[1]: Starting Certbot...
Mar 14 20:22:33 example-host systemd[1]: Finished Certbot.
Mar 14 20:22:33 example-host systemd[1]: certbot.service: Succeeded.
Mar 14 20:22:33 example-host systemd[1]: Starting Certbot...

 

結論


# cat /etc/cron.d/certbot
# /etc/cron.d/certbot: crontab entries for the certbot package
#
# Upstream recommends attempting renewal twice a day
#
# Eventually, this will be an opportunity to validate certificates
# haven't been revoked, etc.  Renewal will only occur if expiration
# is within 30 days.
#
# Important Note!  This cronjob will NOT be executed if you are
# running systemd as your init system.  If you are running systemd,
# the cronjob.timer function takes precedence over this cronjob.  For
# more details, see the systemd.timer manpage, or use systemctl show
# certbot.timer.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew

ここ。


test -x /usr/bin/certbot -a \! -d /run/systemd/system &&  ...

/usr/bin/certbot に実行権があって、

かつ

ディレクトリ /run/systemd/system が存在しなければ、

... 以降を実行する。

 

まとめ

certbot 用のcronは、


/run/systemd/system

ディレクトリがあったら実行されない。

うーん、


/etc/cron.d/certbot

紛らわしくね?

削除しとく?

👉 【Let’s Encrypt】2021年6月からACMEv1 を使った証明書更新は利用できなくなります。 | #Android Fashion News Σ(^A^;) 

👉 systemd - ArchWiki 
👉 SSL Server Test (Powered by Qualys SSL Labs) 
👉 cron(crontab)の代わりにsystemdのtimerを使う - @znz blog 
👉 systemdでtimerの作り方(最小限のサンプル) - Qiita 


Google Assistant (アシスタント) の結果を音声で出力させる

今、コロナ禍の中、自宅なのでスマホで音声で入出力することは何も恥ずかしくありません。むしろ楽なだけです。

検索や簡単なスマホの操作はすべて、音声で行いましょう。

音声関連の設定は、[設定]から上部検索入力欄から「音声」と入力して検索します。

すべてここからです。

 

Voice Match

「Voice Match」は、「Ok Google」という音声入力を受けて、スマホ上で Googleアシスタント が起動します。

起動だけを担当しますので、「Ok Google」というのが面倒であればOFFでどうぞ。

 

音声出力

入力が音声であれば、検索結果を音声で出力します。

音声出力 アシスタント

日本語の場合、「簡潔」では、音声が出力されないんですよね。

「完全」を選択してから、音声入力を行ってください。

 

まとめ

今回は、音声で入力してるのに、音声で出力されないので少し設定を調べてみました。

音声出力は「完全」で設定しておく

ということだけ覚えておけば良いと思います。

👉 Androidの文字入力スピードが5倍以上になる14のテクニック 
👉 Android 版 Chrome タブのグループ化とグリッド表示 


Androidの文字入力スピードが5倍以上になる14のテクニック

以下記事の Gboard - Android 版です。

👉 iPhoneの文字入力スピードが5倍以上になる14のテクニック [iPhone] All About 
👉 iPhoneの文字入力スピードが「5倍以上」になる14のテクニック(All About) - Yahoo!ニュース 

同じ操作や機能が、Androidでどのように実装されているか確認してみましょう。

 

1. カーソルを自由自在に動かす


[...] - [テキスト編集]


または、


[◀][▶]キーの長押しから上下左右

でも移動することが可能です。上下左右のインジケーターが表示されます。

👉 Gboard 日本語 12キー 左右のカーソルキーを使ってすばやく上下移動する方法 

 

2. 3本指のピンチでコピー・ペーストが可能

iPhone や mac のような、3本指のピンチアウト・イン操作でのコピペはできません。

代わりに「クリップボード履歴」とかはあります。


[クリップボード]



使い方は、クリップボード内にヒントとして以下のように書かれています。

- コピーしたテキストはここに保存されます。
- クリップをタップすると、テキストボックスに貼り付けられます。
- クリップを長押しするとクリップが固定されます。固定を解除したクリップは1時間後に削除されます。
- 編集アイコンで、クリップを固定、追加、削除します。

 

3. 3本指を左にスワイプで直前の動作を取り消す

すべての動作を戻ることはできないが、変換は左上矢印で無変換状態に戻れる。

 

4. 連続タップで単語・文・段落を瞬時に選択できる

Androidでは、


「長押し」から左右のつまみをスワイプ

つまみは、外方向で「単語」ごとに選択範囲拡張、内方向で「文字」ごとに選択範囲縮小。

 

5. 選択した漢字の再変換ができる

できない。と思う。

 

6. ダブルタップ→スライドで素早く範囲選択できる


対象の文字を[長押し]してスライド

です。スライドしている間は、虫眼鏡で拡大表示されます。


 

7. 「や」の横フリックでカッコを素早く入力できる

Androidも同じ。


[や]のフリックでカッコ


あと、


[8]のフリックで「〒」「々」「〆」

 

8. 地球儀マークの長押しでキーボードを素早く切り替える

Androidでも同じく「地球儀マーク」や「スペース」の長押しでキーボード変更のダイアログから切り替えです。


「地球儀マーク」や「スペース」長押し


👉 顔文字パック キーボード - Google Play のアプリ 
👉 Android 端末 キーボード切り替え方法あれこれ 

 

9. キーボードを左右どちらかに寄せる


[...] - [片手モード]


同様に「フローティング」させることも可能です。

 

10. アルファベットの大文字を連続して入力できる


左下「⇑」長押しで大文字モード

 

11. ユーザ辞書を使って定型文を呼び出す

12. ユーザー辞書に顔文字を登録する

単語の登録は、


[歯車]-[単語リスト]

から登録や編集可能です。


または、以下のようなアプリを使って顔文字や絵文字、定型文など簡単に登録することもできます。

👉 顔文字パック 単語リスト - Google Play のアプリ 
👉 顔文字/絵文字辞書 単語リスト - Google Play の Android アプリ 

 

13. 日付や住所は予測変換を活用すると超スピード


いま

きょう

きのう/さくじつ

おととい/いっさくじつ

さきおととい

あした/あす

あさって/みょうごにち

しあさって

「2015」と入力して「20時15分」

私は、「きょう」や「いま」をよく使います。

 

14. あいまいな英単語は日本語からの変換がおすすめ

iPhoneと同様に、ひらがなで入力すれば候補に表示されます。

 

まとめ

ホントに「入力スピードが5倍以上になる」か分かりませんが、Android - Google Gboard でもほぼ似たようなことはできるようです。

👉 「Google Gboard」に関する記事