首页 > 其他分享 >crondtab定时任务%字符无法识别的处理

crondtab定时任务%字符无法识别的处理

时间:2022-10-09 22:15:57浏览次数:51  
标签:字符 log root crontab sh crondtab 定时 backup

一、背景

1.使用crond的定时任务时,编辑了以下的语句,每天0点执行定时任

crontab -e
service crond restart
0 0 * * * sh /root/backup/compress_backup.sh 2>&1 > /root/backup/log_`echo $(date  +%Y-%m-%d)`

2.查看定时任务的执行,语句没有顺利执行,出现问题

tail -5 /var/log/cron

 

3.本地执行命令是正常的

sh compress_backup.sh  > /root/backup/log_`echo $(date  +%Y-%m-%d)`

 

 二、问题原因

在crontab中%字符被认为是换行,所以你的命令中有%时,需要在crontab中要加\转义

另外注意sh执行的脚本需要写绝对路径,否则也无法正确的执行

 

三、解决方案

 在crontab中要加\转义

crontab -e
service crond restart
0 0 * * * sh /root/backup/compress_backup.sh 2>&1 > /root/backup/log_$(date +\%Y-\%m-\%d)

重启查看定时任务的执行,语句正常

tail -5 /var/log/cron

查看文件备份成功且日志正确生成

 

 

 

标签:字符,log,root,crontab,sh,crondtab,定时,backup
From: https://www.cnblogs.com/mrwhite2020/p/16773161.html

相关文章