在给linux服务器添加定时任务的时候出现以下错误 文件格式问题 [root@xxxxxxbi2cZ ~]# crontab -e crontab: installing new crontab crontab: error renaming /var/spool/cron/#tmp.xxx10nxxpg.XXOl to /var/spool/cron/root rename: Is a directory crontab: edits left in /tmp/crontab.yZZ3z7
咱也不是专业的运维,先去百度了一下以为是权限问题,后面找了好久发现并不是这个问题权限问题的话会提示 rename: Operation not permitted 后面发现其实rename: Is a directory 这句才是关键,菜的一匹,这句话是说是一个文件夹,明眼人都知道,哈哈哈
因为之前在虚拟机中添加定时任务是可以实现的所以就去看了一下虚拟机里面的root文件发现这个root确实不是一个文件夹。。。
是啥呢 他是存放定时任务的文件是一个文件里面放的就是定时表达式 《0 */24 * * * + 脚本路径》大概是0 */24 * * * /usr/local/jiaoben.sh这个亚子的 怎么解决很简单 只需要吧root文件夹删除 然后重新运行crontab -e 重新添加定时任务就行了
权限问题
说完我的问题扩展一下如果出现rename: Operation not permitted这个错误,就是权限问题解决办法如下
解决方法:执行如下命令,修改/var/spool/cron/root权限。 chattr -i /var/spool/cron/root,这个是清除这个目录的一些特殊限制的,然后执行 crontab -e 命令,就可以重新添加一个定时任务了
原文链接:https://blog.csdn.net/qq_29485643/article/details/89072025
参考:https://www.zhanqunfuwuqi.com/archives/3891 普通用户权限问题
参考:https://www.cnblogs.com/fivedays/p/12580850.html
linux cron定时器表达式校验工具
linux的cron表达式和java的还是有些区别的
参考:https://tool.lu/crontab/