环境:
Ubuntu20.04
问题:
ubuntu20 普通用户默认没有开启 crontab 权限,所以会报以下错误
hadoop@myserver:~$ crontab -e
/etc/cron.allow: Permission denied
You (hadoop) are not allowed to use this program (crontab)
See crontab(1) for more information
解决方法:
1、添加 allow 权限
root@myserver:~# chmod 660 /etc/cron.allow
root@myserver:~# chown :crontab /etc/cron.allow
root@myserver:~# ll /etc/cron.allow
-rw-rw---- 1 root crontab 7 Jul 8 10:31 /etc/cron.allow
2、编辑 crontab
hadoop@myserver:~$ crontab -e
no crontab for hadoop - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/ed
Choose 1-4 [1]: 2
如果需要重新选择其他的编辑器,可以输入
select-editor
3、也可以编辑 /var/spool/cron/crontabs/<user> 文件
cat <<EOF > /var/spool/cron/crontabs/hadoop
0 0 * * * find /home/hadoop/airflow/logs/ -ctime +30 -exec rm -rf {} \;
EOF
补充:
Ubuntu 20.04.3 LTS 中,会有些不一样
如果使用 crontab -l 报错 /var/spool/cron: chdir: Permission denied
可以试着修改目录权限
sudo chmod 755 /var/spool/cron
sudo chmod 1755 /var/spool/cron/crontabs