涉及到一些定时任务的时候,我们首先想到的就是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'