RaspberryPi[30] rsycの自動化

リモートラズパイのデータをcronで持ってくるのに、scpを使おうかと思っていましたが、ファイルの更新を確認するのなら、rsyc が良いなという事で、rsyc の自動化をしました。ネット上にいくつか見つかるのですが、その通りに動かすとうまく動かないので少し改変しました。自動化をするのに、expect というコマンド(実はスクリプトらしい)をインストールする必要があります。

 sudo apt install expect

シェルスクリプトはこんな感じです。

#!/bin/sh
PASSWORD="相手先のパスワード"
expect -c "
spawn rsync -auz -e ssh /home/xx/ 相手先のログイン名@相手先のIPアドレス:/home/コピー先
expect \"パスワード要求時に表示される文字列\"
sleep 1
send \"${PASSWORD}\n\"
expect eof
exit 0
"

「パスワード要求時に表示される文字列」は実際に rsyncを手で打って帰ってくる文字列です。大体こんな感じだと思います。

user@IP address's password:

cron はこんな感じ

cron -e でエディット、cron -l で確認です。まあ、これは説明もいらないですよね。

0 11 * * * /home/xx/yy/backup.sh