2017-01-31 38 views
0

私はbashスクリプトにいくつかの問題があります。私はそれにいくつかのコンテンツを追加する必要があります。私のスクリプトは特定の時間に実行する必要がありますが、私はそれを行う方法がわかりません。それはこのように動作するはずです: 私は変数を持っているので、私は3200sのような時間を割り当てます。プログラムを実行すると、スクリプトは3200秒ごとにバックアップを作成しますが、一部のファイルが変更された場合にのみ作成されます。私は間違って何をしていますか?ここスケジュールでbashスクリプトを実行する

!/bin/bash 

SOURCE="/var/www/my_web/load/" 
BACKUP="/home/your_user/load/" 
LBACKUP="/home/your_user/load/latest-full/" 

DATE=$(date +%Y-%m-%d-%T) 

DESTINATION="$BACKUP"/"$DATE"-diff/ 

rsync -av --compare-dest="$LBACKUP" "$SOURCE" "$DESTINATION" 

cd "$DESTINATION" 
find . -depth -type d -empty -delete 
+0

は 'チェックあなたは、ターミナルウィンドウを離れた後もバックグラウンドで実行を継続する

cron'と 'at'コマンドです。 – choroba

答えて

0

私はあなたのスクリプトに機能することを追加しました:

用法:

./yourscript.sh 3200 

スクリプト:あなたはbash: ./yourscript.sh: Permission deniedのようなエラーが出る

#!/bin/bash 

# make sure you gave a number of seconds: 
[ 0$1 -gt 0 ] || exit 

while true; do 
    SOURCE="/var/www/my_web/load/" 
    BACKUP="/home/your_user/load/" 
    LBACKUP="/home/your_user/load/latest-full/" 

    DATE=$(date +%Y-%m-%d-%T) 

    DESTINATION="$BACKUP"/"$DATE"-diff/ 

    rsync -av --compare-dest="$LBACKUP" "$SOURCE" "$DESTINATION" 

    cd "$DESTINATION" 
    find . -depth -type d -empty -delete 

    sleep $1 
done 

場合、その後、あなたが必要スクリプトを実行可能にするには、chmod +x yourscript.shを一度実行します。

nohup ./yourscript.sh 3200 & 

も、再起動後のスケジュール上のバックグラウンドで実行する:

使用cron、例えば、Using crontab to execute script every minute and another every 24 hours

関連する問題