backup.sh
というスクリプトがあります:
#!/bin/bash
Sudo Zip -r /home/jazuly/backup.Zip /var/lib/automysqlbackup/
cd /home/jazuly/backupscript/cp2google/
php cp2google.php /home/jazuly/backup.Zip
cd ~
rm -f /home/jazuly/backup.Zip
私はそれを実行可能にしました:
Sudo chmod +x backup.sh
次に、cron
with crontab -e
を編集しようとしました。
私は追加します:
# m h dom mon dow command
0 0 * * * /home/jazuly/backup.sh
しかし、cron
がbackup.Zipをメールに送信すると、それをダウンロードして開き、ファイルが破損しています。
スクリプトを手動で実行する場合:
$ Sudo chmod +x backup.sh
$ ./backup.sh
Zipファイルを開くことができます。
修正方法の手順は次のとおりです。
var/lib/automysqlbackup
の権限と所有者を777
&jazuly.jazuly
に変更します。backupscript/cp2google/
からhome/jazuly
に移動します。wait
を使用します。私の最終的なコード:
#!/bin/bash
Zip -r backup.Zip /var/lib/automysqlbackup/
wait
php cp2google.php backup.Zip
wait
rm -f backup.Zip
そして私のcron
:
0 0 * * * /home/jazuly/backup.sh
毎日午前0時をバックアップします。
.sh
ファイルが実行したいものと同じパスにある場合、フルパスを記述する必要はないと思います。
Cron実行スクリプトではフルパスを使用する必要があります。したがって、cd ~
を実行せず、代わりにcd /home/jazuly
を指定してください
さらにデバッグするために、/home/jazuly/backup.sh 1> /home/jazuly/log.txt 2> /home/jazuly/err.txt
を使用して、cronスクリプトの出力をファイルにリダイレクトすることもできます。
したがって、コマンド全体:
# m h dom mon dow command
0 0 * * * /bin/bash /home/jazuly/backup.sh 1> /home/jazuly/log.txt 2> /home/jazuly/err.txt
フルパスを使用してみてください
#!/bin/bash
/usr/bin/Zip -r /home/jazuly/backup.Zip /var/lib/automysqlbackup/
/usr/bin/php /home/jazuly/backupscript/cp2google/cp2google.php /home/jazuly/backup.Zip
rm -f /home/jazuly/backup.Zip
/bin/bash
をcronに追加します
# m h dom mon dow command
0 0 * * * /bin/bash /home/jazuly/backup.sh
ファイルbackup.Zip
、backupdatabaseterbaru-c771cd4f4fcf.p12
の権限を確認します