crondtab定时任务%字符无法识别的处理
一、背景
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
查看文件备份成功且日志正确生成
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2021-10-09 离子烫攻略
2021-10-09 Liunx快捷命令(别名)与快捷方式(软/硬链接)