私のラズベリーパイをバックアップするbashスクリプトがあります。バックアップコマンドを実行した後、マイコンピュータをシャットダウンする必要があります。これは、コマンドラインでスクリプトを実行すると機能します。ただし、cronieが実行されると、バックアップが完了するのを待たずにすぐにシャットダウンコマンドに移動します。
この問題についてどうすればよいですか?
シェルスクリプト:
#!/bin/bash
ssh [email protected] dd if=/dev/mmvblk0 bs=1M | gzip -c > /path/to/backup/$(date -I) && systemctl poweroff
答え1
ssh
ただバックグラウンドで実行されているようです。実際に接続してすぐにssh
終了できない場合は、gzip
すぐに終了する結果も発生します。ただし、パイプの終了コードは最後のコマンドの終了コードであるため(set -o pipefail
以前に使用されていない場合)、closeコマンドが実行されます。
そのユーザーのデフォルトファイルにないSSHキーを使用するには、ssh
次のオプションを使用してキーファイルに通知する必要があります-i
。
ssh -i /home/user/.ssh/id_rsa [email protected] dd if=/dev/mmvblk0 bs=1M