at的使用
设置 at 命令很简单,只是运行的时间,就会在那个时候运行。类似于打印进程,会把任务放到 /var/spool/at 目录中,到指定时间运行它。
/etc/at.allow和 /etc/at.deny 管理使用限制,写在 /etc/at.allow 中的用户才能使用 at,写在 /etc/at.deny 中的用户不能使用 at。若这两个文件不存在,则只有 root 用户可以使用 at。
安装:
sudo apt-get install at
启动:
sudo service atd start
参数:
- -f:指定包含具体指令的任务文件
- -q:指定新任务的队列名称
- -l:显示待执行任务的列表
- -d:删除指定的待执行任务
- -m:任务执行完成后向用户发送email
例如1:
两分钟后写hello world到my.txt
at now + 2 minutes
echo "hello world" > my.txt
crtl+d
例如2:
在今天21:55输出时间到time.log中
at 21:55 today
data > time.log
ctrl+d
crontab
crontab:用于设置周期性被执行的指令,它通过守护进程cron使得任务能够按照固定时间间隔在后台自动执行。
crontab格式:
-
* * * * command to be executed
分钟数 小时数 一个月的第几天 月数 星期几 执行的命令
参数:
- -u:只用root才能进行这个任务,帮其他使用者创建/移除crontab工作调度
- -e:编辑crontab工作内容
- -l:列出crontab工作内容
- -r:移除所有的crontab工作内容
例如1:
每天中每小时的第5分钟执行test,sh
sudo vim test.sh
touch /home/lcc/&RANDOM
:wq
crontab -e
05 * * * * /home/lcc/test.sh
:wq
例如2:
每天陵城3,4,5点执行test.sh
crontab -e
00 3,4,5 * * * /home/lcc/test.sh
例如3:
周日每隔3个小时执行test.sh
crontab -e
00 */3 * * 0 /home/lcc/test.sh
例如4:
每天7点关闭计算机:
crontab -e
00 19 * * * /sbin/shutdwon -h
添加系统级别的定时任务
以root权限编辑/etc/crontab文件就可以
在/etc下cron相关的目录有以下几个:
- /etc/cron.daily:目录下的脚本会每天执行一次,在每天的6点25分运行。
- /etc/cron.hourly:目录下的脚本会每小时执行一次,在每小时的17分钟运行
- /etc/cron.monthly,目录下的脚本会每月执行一次,在每月1号的6点52分时运行
- /etc/cron.weekly,目录下的脚本会每周执行一次,在每周第七天的6点47分时运行