
🏡作者主页:点击!
🤖Linux专栏:点击!
⏰️创作时间:2024年11月14日11点20分

系统任务管理
任务管理
计划执行:特定时间运行一次:at
定期执行:按周期执行多次:cron
at
at命令可以指定linux在特定时刻运行脚本。atd为守护进程。定期检查系统 /var/spool/at 目录,获取通过at命令写入的任务
命令至少需要指定一个命令和一个执行时间
at命令可以只指定时间,也可以和时间日期一起指定
at语法
at [-V] [-q队列] [-f文件名] [-mldbv] 时间 at -c 作业绝对记时----允许使用一套相当复杂的时间指定方法
1、hh:mm时间指定,如果时间已经过去就会存放第二天执行
2、midnight、noon、teatime下午四点,模糊时间指定
3、12小时制,时间后加上AM或PM
4、month day(月 日)或者mm/dd/yy(月 日 年)或者dd.mm.yy(日 月 年),指定的日期必须在指定的时间后面相对记时----对于安排不久后就要执行的命令较为方便
now+count time-units,now就是当前时间,time-units是时间单位,这里可以是 minutes、Hours、Days、Weeks
count是时间的数量,究竟是几天;还有一种方法就是直接使用today、tomorrow来指定命令的时间#16:30执行任务,现在是12:30 2020/6/7 at 4:40pm at now+240 minutes at 16:30 at 16:30 7.6.20 at 16:30 today at 16:30 6/7/20 at now+4 hours at 16:30 jun 7 #8条命令执行效果完全相同执行权限
- 对 at 命令,需要定时指定的命令是从标准输入或者使用 -f 选项指定的文件中读取并执行的
- 对于其他用户来讲,是否执行某个命令或脚本取决于 /etc/at.allow 和 /etc/at.deny 文件
at -f demo.sh 15:00实际操作
#相对时间 at now+5min echo "aaa" >> /tmp/test.txt data >> /tmp/test.txt ctrl + d 退出 #绝对时间 at 22:00 pwd >> /tmp/check.log ctrl + d 退出 atq #查询当前未完成的命令 at -c 1 #查看任务的详细信息 atrm 1 #删除任务5
cron
at 命令会在指定时间内完成指定任务,只能执行一次,系统完成任务之后就不再执行
多次执行命令使用cron命令来完成
- cron会搜索 /var/spool/cron 目录,寻找以 /etc/passwd 文件中的用户名命令的 crontab 文件,将 crontab 文件装入内存
- cron 将搜索 /etc/crontab 文件,这个文件(cron时间表)是以特定格式写的
- cron 启动以后,先检查用户是否设置了 crontab 文件,如果没有就转入睡眠状态,释放系统资源,所以该后台进程占用资源较少,之后每几分钟被唤醒一次,查看当前是否有需要运行的命令
crontab命令
- crontab命令用于安装、删除或者显示用于驱动 cron 后台进程的表格
- 用户把需要执行的命令序列放到 crontab 文件中以获得执行,而且每个用户都可以有自己的 crontab 文件
crontab -u #设置某个用户的cron服务。root用户在执行 crontab时需要此参数 crontab -l #列出某个用户cron服务的详细内容 crontab -r #删除某个用户的cron服务 crontab -e #编辑某个用户的cron服务minute hour day month week(0代表周日) commands 例如: 00 08 * * 1 commands #每周一的八点执行命令 -* #所有取值范围内的数字 -/ #每几个单位 - #从某个数字到某个数字 , #离散的几个数字 例如: * 23-8/2 * * echo"sleepy" >> /tmp/test.txt #晚上11点到8点,每两个小时在tmp/test.txt文件中加入sleepy文本
- cron服务每分钟不仅要读一次 /var/spool/cron 所有文件,还需要读一次 /etc/crontab 文件
- 使用crontab配置是针对某个用户的,编辑 /etc/crontab 是针对系统的任务
实际操作
crontab -l #使用命令查看crontab命令列表 crontab -e #进入编辑模式,编辑未完成的任务 1 * * * * data >> /tmp/data.log #一分钟执行一次时间命令 */2 * * * * id >> /tmp/id.log #每两分钟执行一次id命令 :wq crontab -l #使用命令查看 crontab 命令列表 crontab -r #删除所有的 crontab 命令 crontab -l #之后全部都没有了

629

被折叠的 条评论
为什么被折叠?



