欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

crontab中的%

程序员文章站 2022-06-29 23:21:01
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中的%

 

在网上找到两个相关的文章,说到了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. 

2. linux crontab命令详解