Linux定时任务
一.Linux计划任务:未来的某个实践执行一次任务,或者周期性执行某个任务
定时任务:at batch
周期性任务:crontab
系统任务调度: 用户任务调度:
/etc/crontable /var/spool/cron
mail:mail -s “邮件主题” ” –c “抄送地址” –b “密送地址” 等
二.at:(时间刻执行任务)
1.时间定义:
eg:hh:mm 12:00
noon teatime
AM PM 8am 9am
2019-8-11 2019/8/11
+5 minutes hours days weeks
today tomorrow
2.语法结构:
at 选项 参数
-q:列出任务
-f:从文件中读取
-l:列出任务
-d:指定删除
-v:列出已执行为删除的任务
-V:显示版本号
-c:查看作业的内容
atq:列出计划任务
atrm:删除at任务
三.crond:(周期性执行任务)
.---------------- minute (0 - 59)
| .------------- hour (0 - 23)
| | .---------- day of month (1 - 31)
| | | .------- month (1 - 12) OR jan,feb,mar,apr …
| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| | | | |
* * * * * user-name command to be executed
一句话概括: *(分时日月周+命令)
1.时间表示法:
1.特定值:40 8 * * *
2.: 8 * * *
3.连续值:8-10 9-16
4.定义时间长 时间步长:/4
eg:(1) 3 * * * *:每小时执行一次;每小时的第3分钟;
(2) 3 4 * * 5:每周执行一次;每周5的4点3分;
(3) 5 6 7 * *:每月执行一次;每月的7号的6点5分;
(4) 7 8 9 10 *:每年执行一次;每年的10月9号8点7分;
(5) 9 8 * * 3,7:每周三和周日;
(6) 0 8,20 * * 3,7:每周三和周日的8点和20点
(7) 0 9-18 * * 1-5:每周一都周五的早九点到晚18点
(8) */5 * * * *:每5分钟执行一次某任务;
2.语法结构:crontab [-u user] [-l | -r | -e] [-i]
-e:编辑任务
-l:移除任务
-i:移除时确认,与-r一起使用
四.计划任务规范:
1.脚本要规范,脚本存放位置要规范,便于维护
2.定时任务要写注释
3.执行的脚本要带绝对路径
4.执行结果的标准输出或者错误输出 >dev/null
5.能用命令完成的也要写在脚本里
6.分用户来执行
相关练习:
1:每1分钟执行一次command
-
-
-
-
- command
-
-
-
2:每小时的第3和第15分钟执行
3,15 * * * * command
3:在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * command
4:每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * command
5:每个星期一的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 command
6:每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
7:每月1、10、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
8:每周六、周日的1 : 10重启smb
10 1 * * 6,0 /etc/init.d/smb restart
9:每天18 : 00至23 : 00之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart
10:每星期六的晚上11 : 00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart
Linux进程管理
Linux进程管理:
1.程序:一组指令以及参数的集合,按照相应的逻辑控制计算机完成任务
进程:运行的程序(动态过程),是操作系统上的基本单位
(1)操作系统以进程为单位分配系统资源
(2)每一个进程运行是独立的
(3)具有独立的地址空间,运行状态
(4)多个程序同时运行,每一个程序就是一个进程
线程:(1)一个进程中可有多个线程
(2)线程无法独立运行
2.进程的管理工具:
pstree 进程树:查看进程之间的关系
-p:显示id
-u:显示用户
ps:
-a:显示所有进程
-u:显示以用户为主的进程
-aux:显示更详细的信息
kill:
-9:杀死进程
-w:等待进程死亡
-l:列出已知信号