crontab中的%是換行的意思,在使用時需要使用\做轉義。 ...
crontab中的%是換行的意思,在使用時需要使用\做轉義。
-----------------
在用crontab執行一段定時任務時,想要把數據輸出到一個日期命名的文件中
1 * * * * * cd /home/data/youtubeApi && /bin/php /home/data/youtubeApi/channelSections.php &> /home/data/youtubeChannelData/channel.2.`date +%Y%m%d`
預期每天會產出
channel.2.20190807
channel.2.20190808
channel.2.20190809
這樣的文件,但是命令並沒有正常執行起來
我是通過 mail 命令和 cat /var/spool/mail/data 這兩個命令去查看的問題,錯誤信息中有可以很清楚看到 %Y%m%d 這樣的日期格式信息丟失了
在網上找到兩個相關的文章,說到了crontab中的%為換行的意思,所以做了轉義,可以正常運行了。
# 不正確的寫法 1 * * * * * cd /home/data/youtubeApi && /bin/php /home/data/youtubeApi/channelSections.php &> /home/data/youtubeChannelData/channel.2.`date +%Y%m%d` # 正確的處理方式,註意轉義 % 1 * * * * * cd /home/data/youtubeApi && /bin/php /home/data/youtubeApi/channelSections.php &> /home/data/youtubeChannelData/channel.2.`date +\%Y\%m\%d`
參考的文章:
1. crontab註意%