有一台转移到新主机的阿里云Linux,发现无法设置定时任务了,无论怎么编辑,crontab -e 就是无法存储。错误提示是没有权限,下面的是近似问题,提示不是原文,因为已经找不着了:
root@X [/tmp]# crontab -e
crontab: installing new crontab
crontab: error renaming /var/spool/cron/tmp.XXXXDSGEDV to /var/spool/cron/root
rename: Operation not permitted
crontab: edits left in /tmp/crontab.xO3YcB
百思不得其解。进入/var/spool/下查看cron目录,正常的,但是在cron里面没有权限建立文件,这是根源。用vim编辑一个测试文件,无法保存在这个cron目录,报告错误E212 – 权限问题。
drwx—— 2 root root 4096 Nov 6 00:15 cron
后来想到,目录可能有什么特殊的地方,root用户也被约束了。
#lsattr /var/spool/cron/
—-ia——-e- /var/spool/cron
去掉特别属性:
chattr -ai /var/spool/cron
再次编辑定时任务:crontab -e ,保存,解决。
chattr/lsattr的说明在这里:https://www.wikiwand.com/en/Chattr
顺便说句,这年头,用不了谷歌的人就别干研发了,不解释。
奇怪了,又出现了一次!