因特殊需求,需要在linux的某个文件中每分钟打印出当前时间。
先手动试一下命令:
echo $(date)
打印出:
Mon Sep 1 09:28:06 AM CST 2024
而我需要达到的效果是:
2024-09-01 09:28:06
于是命令改成了:
echo $(date "+%Y-%m-%d %H:%M:%S")
拿到结果:
2024-09-01 09:28:96
现在放入crontab中。
先编辑:
crontab -e
加入内容:
* * * * * echo $(date "+%Y-%m-%d %H:%M:%S") >> /root/crontest.log 2>&1
即:每分钟打印一次时间
去文件里查看:
cat /root/crontest.log
发现什么都没有。这个地方花了很久才搞定,查了很多方案告诉我这样是没有问题的。
而实际上在crontab中, %符号在crontab中是特殊符号,所以需要进行转义!
所以需要再次对命令进行修改:
* * * * * echo $(date "+\%Y-\%m-\%d \%H:\%M:\%S") >> /root/crontest.log 2>&1
这样就可以打印出来了。
当然,命令仍然可以进行简化,最终的命令为:
* * * * * date "+\%Y-\%m-\%d \%H:\%M:\%S" >> /root/crontest.log 2>&1
也可以实现同样的效果!