我在 ubuntu 12.04 服务器上运行 Rails 应用程序。我设置了一个 cron 作业,每天凌晨 2 点备份上传到我的应用程序的所有文件。文件很多(大约 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
压缩 900MB 的文件真的要花这么多时间吗?而且为什么要消耗所有资源?
答案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 点的每一分钟都会启动您给定命令的另一个实例。