涉及到一些定时任务的时候,我们首先想到的就是crontab
*/1 * * * * sh /root/task.sh >> /root/logs/task.log 2>&1
&1
标准输出
2
:标准错误
command >> file 2>&1
command » file将标准输出重定向到file中, 2>&1 是标准错误拷贝了标准输出的行为,也就是同样被重定向到file中,最终结果就是标准输出和错误都被重定向到file中
command > file
: 内容输出到文件,覆盖的方式
command >> file
:内容输出到文件,追加的方式
上面的任务,每分钟执行一次,但是如果数据过多,可能会导致一分钟执行不完,这样又会启动一个命令,导致脏数据的产生,所以需要加锁
*/1 * * * * /usr/bin/flock -xn /root/locklogs/task.lock -c 'sh /root/task.sh >> /root/logs/task.log 2>&1'