crontab -e 来生成计划任务,实际上是在/var/spool/cron下对应账号添加一条记录,
如当前登录账号sunny,执行crontab -e 后编辑计划任务* * * * * wall hello sunny
相当于是在/var/spool/cron/sunny这个文件下生成一条记录任务 * * * * * wall hello sunny
当是这个是交互式的写法,不能用于脚本中操作
非交换式计划任务编写有两种方法,但是都是root才有权限进行编辑
方法一
在脚本中执行如下语句,得到的相关和直接编辑crontab -e一样,而且是非交互式的,
同时可以指定执行命令的用户,该命令编辑可以同crontab -l查看到当前账号执行的计划任务
echo "* * * * * wall hello sunny" >> /var/spool/cron/sunny
方法二
直接编辑/etc/crontab 文件,一样是可以实现非交换,但是这个方式编辑的计划任何需要指定任务的执行者
以下例子中的sunny就是该计划任务的执行者,这个是语法规定要写入执行者的。
这样编辑的方式不能通过crontab -l查看到当前账号执行的计划任务,需要通过cat /etc/crontab直接查看
echo "* * * * * sunny wall hello sunny" >> /etc/crontab
编写脚本建议写第一种方式,通过crontab -l直接查看到当前账号执行的计划任务。