(1)at 在指定时间完成任务
root可以使用这个命令,对于其他用户来说,能否可以使用就取决于两个文件:/etc/at.allow和/etc/at.deny,可以使用是将“用户名”写入/etc/at.deny中,用户不能执行at命令(echo
"user1" >> /etc/at.deny)。
-f
指定包含具体指令的任务文件,不指定时从终端输入。at提交的是一次性任务,周期性任务使用crontab。at的守护进程atd,负责在指定时间执行特定的任务,执行的任务自动被存放在/var/spool/at/下,每次开机由atd读取
at -f workfile 03:30
-q 指定新任务的队列名称
-l 显示待执行任务列表
-d 删除指定的待执行任务
(2)atq 显示用户待执行任务列表
root用户运行显示所有用户的待执行任务列表
atq -q q1 查询q1队列中待执行的任务列表
(3)atrm 删除待执行任务
用atq查询任务列表以显示任务号,再使用atrm删除具体任务
atrm 1 2 3 删除1、2和3任务
(4)batch 在指定时间执行任务
用法与at相似,不同的是batch任务到达指定时间时,只有系统的平均负载低于0.8时才被执行。禁止用户使用batch“用户名”写入/etc/at.deny中。
(5)crontab 周期性执行的任务
其守护进程crond,负责在指定的时间执行特定的任务,待执行的任务被存放在/var/spool/cron。/etc/cron.allow和/etc/cron.deny存放控制能够使用cron的用户。
crontab文件的格式:M H D m d cmd (分、时、日、月、周、命令)
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
45 4 1,10,22 * * systemctl restart docker 每月1、10、22日的4 :
45重启docker
* 23-7/1 * * * systemctl restart docker
晚上11点到早上7点之间,每隔一小时重启docker
crontab file
-l 列出当前用户的任务计划
-e 编辑用户的crontab文件
-r 删除用户的计划任务
(6)init 初始化linux进程
init指令是linux下的进程初始化工具,init进程是所有linux进程的父进程,进程号为1,依据配置文件/etc/inittab创建进程。注:centos7.0之后使用systemd。
init 1 切换启动级别
0:停机
1:单用户形式,只root进行维护
2:多用户,不能使用net file system
3:完全多用户,网络服务器所使用
5:X-window模式,桌面用户
4:安全模式
6:重启
(7)telinit 切换运行等级
是init指令的符号链接
(8)runlevel 打印当前运行等级
读取文件/var/run/utmp显示当前运行等级
(9)killall 按照名称杀死进程
进程名称即为启动进程的指令名称,可以杀死一组同名的进程
killall ssh
-l 打印所有已知的信号,默认使用SIGTERM信号结束进程
-u 杀死指定用户的进程
(10)nice 以指定优先级运行程序
默认为10,“-20”-“20”,负值的优先级高
nice -n 6 find / -name passed > out.txt
(11)renice 调整正在运行的进程优先级
普通用户仅能将优先级数字调高,root用户可调低或调高
renice +7 4896 将进程4896调到优先级为7
(12)nohup 以忽略挂起信号运行程序
被运行的程序输出信息将不会显示到终端。当用户退出登录时,用户所开启的但未完成的任务将被挂起而退出执行,nobup可以在用户退出系统后仍然能够继续运行
nobup find / -name passwd > out.txt
(13)pkill 按名称杀死进程
pkill httpd
-P 指定父进程,杀死进程所派生的所有子进程
-g 指定进程组
(14)pstree 以树形显示进程派生关系
显示中出现“数字*[{command}]”表示几个相同参数的某command进程
-a 显示进程命令行参数
-l 显示长行
-p 显示进程号
(15)ps 报告系统当前进程快照
ps 查看当前用户的进程
ps -aux 系统中所有进程的信息
ps -ef
ps aux --sort -rss 排序
-A 选择所有进程
-a 显示现行终端机下的所有进程,包括其他用户的进程
-x 显示没有终端的进程
-r 显示正在运行的进程
-u 显示所有用户的所有进程
-e 效果与A相同
-f 全部列出
-l 长格式
ps的Head标头意思
USER 用户名
UID 用户ID(User ID)
PID 进程ID(Process ID)
PPID 父进程的进程ID(Parent Process id)
SID 会话ID(Session id)
%CPU 进程的cpu占用率
%MEM 进程的内存占用率
VSZ 进程所使用的虚存的大小(Virtual Size)
RSS 进程使用的驻留集大小或者是实际内存的大小,Kbytes字节
TTY 与进程关联的终端(tty)
STAT 进程的状态:进程状态使用字符表示的(STAT的状态码)
R 运行Runnable (on run
queue),正在运行或在运行队列中等待
S 睡眠Sleeping,休眠中, 受阻,
在等待某个条件的形成或接受到信号
I 空闲Idle
Z 僵死Zombie(a defunct
process),进程已终止, 但进程描述符存在,直到父进程调用wait4()系统调用后释放
D 不可中断Uninterruptible
sleep (ususally IO),收到信号不唤醒和不可运行, 程必须等待直到有中断发生
T
终止Terminate,进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行
P 等待交换页
W 无驻留页has no resident
pages,没有足够的记忆体分页可分配
X 死掉的进程
< 高优先级进程程
N 低优先级进程
L
内存锁页Lock,有记忆体分页分配并缩在记忆体内
s 进程的领导者(在它之下有子进程)
l 多进程的(使用 CLONE_THREAD,
类似 NPTL pthreads)
+
位于后台的进程组
START 进程启动时间和日期
TIME 进程使用的总cpu时间
COMMAND 正在执行的命令行命令
NI 优先级(Nice)
PRI 进程优先级编号(Priority)
WCHAN
进程正在睡眠的内核函数名称;该函数的名称是从/root/system.map文件中获得的
FLAGS 与进程相关的数字标识
(16)watch 周期性执行给定命令,以全屏方式显示
轻松实现监控系统的某些变化,ctrl+c退出watch指令的运行界面
watch -d ls -l 监控当前目录下内容变化
-n 间隔时间
-d 高亮显示输出信息不同之处
-t 不显示标题
(17)w 显示已登录用户正在执行的指令
显示登录用户的基本信息和正在执行的任务,监控用户行为的作用
watch w 监控用户登录及其行为
(18)service 控制系统服务
redhat linux兼容的发行版中用来控制服务。要控制的服务名,即/etc/init.d下的文件名
service --status-all 显示所有服务的状态
service oracle start
控制命令由start/stop/restart/reload/condrestart/status
(19)ipcs 报告进程间通信设备状态
支持"消息队列"、“共享内存”、“信号量”三种进程间通信机制,用于显示它们的状态
(20)pgrep 基于名称查找进程
pgrep httpd 显示进程号
(21)pidof 查找指定名称的进程号
pidof httpd 查询名称为httpd的所有进程号,可以显示多个
(22)pmap 报告进程的内存映射
pmap 1
-x 显示扩展格式
-d 显示设备格式
-q 不显示头尾行