私は ubuntu 12.04 サーバーで Rails アプリケーションを実行しています。毎朝午前 2 時にアプリケーションにアップロードされたすべてのファイルのバックアップを取る cron ジョブを設定しました。ファイル数は非常に多いです (約 900 MB)。しかし、ユーザーが午前中にアプリケーションを使用する必要がある場合は、アクセスできます。そこで、SSH でログインし (信じられないほど遅くなります)、ようやくログインして top コマンドを実行すると、gzip プロセスがトップ 10 をすべて埋め尽くしていることがわかります。それらは非常に小さいですが、さらにたくさんあると思われます。
これは実行されるtarコマンドです
tar -cvzf $BASEBACKUP/uploads-$DATE.tar.gz /var/www/bptrial/current/public/uploads/* --exclude=tmp
私のcrontab
* 2 * * * cd /home/user/backup && sh mysql_backup.sh && sh files_backup.sh >> /tmp/cron.log
900 MB のファイルを圧縮するのに本当にそんなに時間がかかるのでしょうか? また、なぜすべてのリソースを消費する必要があるのでしょうか?
答え1
fkraiem が正しいと思います。
詳しく説明すると:
crontabのマニュアルページによると
user@host $ man 5 crontab
時間と日付のフィールドは次のとおりです。
field allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sun, or use names)
A field may be an asterisk (*), which always stands for ``first-last''.
あなたの命令で
#m h dom mon dow command
* 2 * * * cd /home/user/backup...
つまり、毎月、毎日、毎週の 2 時間目の毎分ということです。言い換えると、午前 2 時の毎分、指定したコマンドの別のインスタンスが開始されます。