27 cron と rsync でバックアップ (SSH_AUTH_SOCK)

自分の研究室 Mac では、cron でバックアップをしている。
crontab -e
#
# minute hour day-month month day-week
# everyday 2:00
0 2 * * * /Users/mk/bin/backup-daily >> /tmp/backup.log 2>&1
# every Sunday 4:00
0 4 * * 0 /Users/mk/bin/backup-weekly >> /tmp/backup.log 2>&1
# every 1st 0:00
0 0 1 * * /Users/mk/bin/backup-monthly >> /tmp/backup.log 2>&1
# everyday 3:00
0 3 * * * /Users/mk/bin/daily >> /tmp/daily.log 2>&1
のような調子。

リモート・ホストにファイルを転送するのはどうすれば良いか。 普段は SSH を使っているので、scp とか rsync が使えるのだが、 cron でコマンドを起動したときに、 (ログインする訳ではないので) パスワードを入力できないので、 簡単には ssh は使えない、というのが良く知られている話。

それで、 空のパスワードで済むような (それでいて出来る限り危なくない) 仕掛けを工夫する訳だけど、 なかなか悩ましい。


今日ネットで見かけた工夫。バックアップ・スクリプトに次の1行を入れておく。
export SSH_AUTH_SOCK=`/bin/ls /private/tmp/com.apple.launchd*/Listeners`
なるほど。全ての場合に使える方法ではないと思うけれど、 僕の使っている Mac の場合は動きそう。 うーん、、、、これで本当に良いのかなあ??

桂田 祐史
2020-04-05