linux周期性计划任务 进程管理

周期性计划任务
crontab命令
系统服务:/etc/init.d/crond(crond必须启动才会生效)
用户计划:/var/spool/cron/用户名
默认的计划任务
全局配置:/etc/crontab
系统计划:/etc/cron.hourly/*(每小时要执行)
/etc/cron.daily/*(每天要执行)
/etc/cron.weekly/*(每星期要执行)
/etc/cron.monthly/*(每月要执行)
[root@xiaoxiong 桌面]# rpm -qa | grep cron(查看是否安装了这个服务)
crontabs-1.10-33.el6.noarch
cronie-anacron-1.4.4-15.el6.x86_64
cronie-1.4.4-15.el6.x86_64
[root@xiaoxiong 桌面]# /etc/init.d/crond status(查看这个服务是否运行)
crond (pid 2715) 正在运行...
[root@xiaoxiong 桌面]# chkconfig crond --list
crond 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
[root@xiaoxiong 桌面]# ls /etc/cron.hourly/(每小时要执行的脚本)
0anacron mcelog.cron
[root@xiaoxiong 桌面]# ls /etc/cron.daily/(每天要执行的脚本)
cups logrotate makewhatis.cron mlocate.cron prelink readahead.cron rhsmd tmpwatch
[root@xiaoxiong 桌面]# ls /etc/cron.weekly/(每星期要执行的脚本)
[root@xiaoxiong 桌面]# ls /etc/cron.monthly/(每月要执行的脚本)
readahead-monthly.cron

[root@xiaoxiong 桌面]# vim /etc/crontab (主配置文件)
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- 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
*:匹配范围内任意时间
,:表示多个不连续的时间点
-:表示连续的时间范围
/n:指定时间频率,每n...
记录格式
执行周期,可执行语句
分钟 小时 日期 月份 星期 可执行语句
执行周期 设置说明
分钟 从0到59之间的数
小时 从0到23之间的数
日期 从1到31之间的数
月份 从1到12之间的数
星期 0-7之间的整数,0或7代表星期日

执行周期示列:
0 17 * * 1-5 周一到周五每天17:00
30 8 * * 1,3,5 每周一,周三,周五的8:30
0 8-18/2 * * * 8点到18点之间没2小时
0 0 */3 * * 每三天的0点

crontab命令格式:
编辑cron计划任务
格式:crontab -e [-u 用户名]
查看cron计划任务
格式:crontab -l [-u 用户名]
删除crontab计划任务
格式:crontab -r [-u 用户名]

[root@xiaoxiong 桌面]# crontab -e(编辑计划任务)
30 7 * * * /etc/init.d/sshd start(每7:30开启)
30 23 * * * /etc/init.d/sshd stop(每23:30开启)
[root@xiaoxiong 桌面]# crontab -l(查看计划任务)
30 7 * * * /etc/init.d/sshd start
30 23 * * * /etc/init.d/sshd stop
[root@xiaoxiong 桌面]# crontab -r(删除计划任务,这个不好用,不可以删除单条)

计划任务的授权
cron任务控制
/etc/cron.allow /etc/cron.deny
[root@xiaoxiong 桌面]# ls /etc/cron.allow /etc/cron.deny
ls: 无法访问/etc/cron.allow: 没有那个文件或目录
/etc/cron.deny
如果allow文件存在,则允许指定的用户
否则检查deny文件,除指定用户外其余都允许
如果两个文件都不存在,则只允许root使用

计划任务中断与补救
anacron延时补救
任务周期:每小时检查一次,最近x天以内的任务
由crond服务调度检查,执行被错过的任务操作
[root@xiaoxiong 桌面]# rpm -ql cronie-anacron | grep etc
/etc/anacrontab (全局配置)
/etc/cron.hourly/0anacron(检查任务的脚本)
[root@xiaoxiong 桌面]# tail -3 /etc/anacrontab (anacreon主配置文件)
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly

——————————————————————————————————————————————————————
进程管理
程序:保存在磁盘中的可执行文件,是静态保存的代码
进程:在CPU及内存中运行的程序指令,是动态的执行代码,进程可以创建一个或者多个子进程(父/子进程)
查看进程树
pstree命令
格式:pstree [选项] [PID或用户名]
常用命令选项
-a:显示完整的命令行
-u:列出各进程所属的用户名
-p:列出对应的PID号
[root@xiaoxiong ~]# pstree -aup xx01
bash,5905
└─vim,5930
查看进程快照
ps命令
格式:ps [选项]
常用命令选项
-a:显示当前终端下的所有进程
-u:使用以用户为主的格式输出信息
-x:显示当前用户在所以终端下的进程
-e:显示系统内所有的进程
-l:使用长格式输出信息
-f:以最完整的格式输出信息
[root@xiaoxiong ~]# ps aux(详细度高,列出正在运行的所有进程)
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 19364 1540 ? Ss 17:16 0:03 /sbin/init
root 2 0.0 0.0 0 0 ? S 17:16 0:00 [kthreadd]
..... ....
[root@xiaoxiong ~]# ps -elf(详细度低,列出正在运行的所有进程)
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 0 80 0 - 4841 poll_s 17:16 ? 00:00:03 /sbin/init
1 S root 2 0 0 80 0 - 0 kthrea 17:16 ? 00:00:00 [kthreadd]
..... ....
STAT列,体现进程的状态
-R:正在运行
-S:处于休眠状态,在需要是可唤醒
-D:不可中断的休眠,通常为等待I/O(读写)的情况
-T:停止状态
-Z:僵尸状态,程序已经终止,但占用的内存未被释放

进程动态排名
top交互式工具
格式:top [-d刷新秒数] [-U 用户名](刷新秒数缺省为3秒)
[root@xiaoxiong 桌面]# top -d5(每5秒刷新一次)

top - 22:40:38 up 5:23, 2 users, load average: 0.02, 0.02, 0.00
Tasks: 181 total, 1 running, 180 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.6%us, 0.4%sy, 0.0%ni, 96.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1004768k total, 852424k used, 152344k free, 69264k buffers
Swap: 5054460k total, 0k used, 5054460k free, 365344k cached

检索进程信息
pgrep命令
用途:pgrep [选项] 查询条件
常用命令选项
-l:输出进程名,不仅是PID
-U:检索指定用户的进程
-t:检索指定终端的进程
[root@xiaoxiong 桌面]# pgrep -l net
13 netns
2498 xinetd

进程前后台调度
前台启动:输入正常的命令行,运行期间占用当前终端
后台启动:在命令行末尾添加&符号,运行期间不占用当前终端
ctrl+z组合键:挂起当前进程(暂停并转入后台)
jobs命令:查看后台任务列表
fg命令:将后台任务恢复到前台运行
bg命令:激活后台被挂起的任务
(fg,bg命令未指定序号时,缺省为最近的1个任务)

终止进程
ctrl+c组合键
kill,killall命令
kill PID号,killall进程名
选线-9表示强制终止
pkill命令:杀死符合指定条件的进程,用法与pgrep相似
[root@xiaoxiong 桌面]# killall sleep
[1]- 已终止 sleep 900
[2]+ 已终止 sleep 900

————————————————————————————————————————
linux启动流程
加载BIOS,检查硬件信息
读取并执行第一个开机设备内MBR的boot Loader
运行grub引导加载kernel
内核启动/sbin/init程序
init系统初始化
确定默认的运行级别
触发runleve事件,运行/etc/rc.d/rc
最后执行/etc/rc.local
加载终端或X-Windows接口

————————————————————————————————————

原文地址:https://www.cnblogs.com/Hydraxx/p/6994972.html