计划任务
Linux 可以自动执行某些工作,包括一次性计划和周期计划
准备
atd 服务不是默认开启的,在某些版本 Linux 上需要手动开启(需要 root 身份)
使用at
命令需要权限,权限处理流程如下:
如果
/etc/at.allow
文件存在,则只有这个文件里面的用户可以使用at
命令如果
/etc/at.allow
文件不存在,并且/etc/at.deny
文件存在,那么只有/etc/at.deny
文件里面的用户不能使用at
命令上面的文件都不存在,只有
root
可以使用at
命令
使用crontab
命令需要权限,流程与at
命令相似,配置文件为/etc/cron.allow
和/etc/cron.deny
一次性计划任务
创建一次性计划任务
格式:
参数:
-m
:在计划完成后,给用户发一封邮件通知已完成
时间格式:
HH:MM
HH:MM YYYY-MM-DD
其他例子:
04pm July 30
,now + 5 minutes
,04pm + 3 days
注意:
之后键入具体要执行的命令,这些命令会在预定的时间执行,注意按[Ctrl+d]作为结束
计划任务由系统自动执行,无论用户是否登录
计划任务命令使用独立的shell,环境与用户bash不同,建议命令和文件使用绝对路径
提醒:查找命令绝对路径:
which 命令
同上,
echo
命令的输出需要重定向到用户终端窗口提醒:查看用户终端窗口:
tty
例子:
管理一次性计划任务
atq
和at -l
:列出一次性计划任务at -c 任务号码
:列出任务的详细内容atrm 任务号码
和at -d 任务号码
:删除任务
周期计划任务
基本管理命令
格式:
参数:
-e
:进入编辑页面-l
:查看内容-r
:删除所有任务,若删除一项请crontab -e
进入编辑
任务内容格式
crontab -e
后会进入编辑页面,每一行代表一个任务,一行的格式为
关于特殊字符意义:
*
任意
,
或
-
范围
/n
每n个单位
例子:
系统计划任务
对于不是针对用户,而是针对系统的计划任务,直接编辑/etc/crontab
文件
如注释所示,会多出一个user-name字段,代表以哪个身份执行
最后更新于