菜单
本页目录

2、uptime查看系统负载-top动态管理进程

2.1 uptime 查看系统负载

[root@localhost ~]# uptime 
 16:12:37 up  5:35,  2 users,  load average: 0.00, 0.01, 0.05 
 
16:12:37 up          5:35,             2 users,            load average: 0.00, 0.01, 0.05 
系统时间              启动后运行时间		用户登录个数			平均队列长度(平均负载):1min、5min、15min

2.2 top 动态管理进程

top - 16:15:10 up  5:38,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 119 total,   1 running, 118 sleeping,   0 stopped,   0 zombie
#		进程总数	 正在运行进程数	睡眠的进程数		停止的进程数	 僵尸进程数

%Cpu(s):  0.0 us,  0.1 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   995924 total,   495296 free,   107040 used,   393588 buff/cache				#物理空间使用情况	总	空闲	已用	缓存/缓冲
KiB Swap:   307196 total,   307196 free,        0 used.   689064 avail Mem 				#虚拟空间使用情况	总	空闲	已用	
   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                     
 17393 root      20   0  162004   2236   1564 R   0.3  0.2   0:00.01 top                                                         
     1 root      20   0  193556   6516   4136 S   0.0  0.7   0:01.92 systemd                                                     
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 kthreadd                                                   
%CPU
		us		系统用户所占百分比
		sy		内核所占百分比
		ni		改变过优先级进程所占百分比
		id		空闲CPU百分比
		wa		等待I/O完成的时间总量
		hi		硬中断所占百分比
		si		软中断所占百分比
		st		(steal)偷:虚拟机偷物理内存所占百分比
						物理机运行KVM、XEM虚拟机,KVM虚拟机占用物理机所占百分比
						
PR			内核所调整的优先级(用户不能修改)
NI			用户所调整的优先级(用户能修改)
VIRT		ps中的VSZ,申请的内存
RES			ps中的RSS,实际使用的内存
SHR			共享内存大小(kb)(函数库)
s			进程状态
%CPU		CPU所占百分比
%MEM		物理空间所占百分比
TIME+		进程使用CPU的时间总计(单位	1/100秒)
CMD			执行的命令
top快捷键
		默认3s刷新一次,s修改刷新时间
		空格		立即刷新
		q				退出
		P				按CPU排序
		M				按物理内存排序
		T				按时间排序
						top		-p		PID		 #指定PID查看进程
						top		-u		用户		#指定用户查看进程
						top		U		用户		#指定用户查看进程
	数字1		显示每个内核CPU使用率

注意:CPU总占用可超过100%,需要结合CPU数量来计算

2.3 lsof

$ lsof		# 查看进程和目录的关系,将文件和进程联系
	lsof  [选项]
		-p			PID			#指定PID查看
		-i			:端口			#指定端口查看

练习:
	终端1:		vim  yq.txt
	终端2:		ps  aux | grep 	yq.txt	|grep -v grep			#找到yq.txt的PID
[root@localhost ~]# ps aux |grep yq.txt|grep -v grep
root      17520  0.1  0.5 151568  5100 pts/0    S+   16:43   0:00 vim yq.txt		
## 通过上诉PID查看
[root@localhost ~]# lsof -p 17520
COMMAND   PID USER   FD   TYPE DEVICE  SIZE/OFF     NODE NAME
vim     17520 root  cwd    DIR    8,3       184 33574977 /root
vim     17520 root  rtd    DIR    8,3       224       64 /
vim     17520 root  txt    REG    8,3   2294208 50771387 /usr/bin/vim
vim     17520 root  mem    REG    8,3     61624   249276 /usr/lib64/libnss_files-2.17.so
vim     17520 root  mem    REG    8,3 106075056   258004 /usr/lib/locale/locale-archive			
## 查看22端口
[root@localhost ~]# lsof -i :22
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd     6434 root    3u  IPv4  35246      0t0  TCP *:ssh (LISTEN)
sshd     6434 root    4u  IPv6  35257      0t0  TCP *:ssh (LISTEN)
sshd     6702 root    3u  IPv4  36587      0t0  TCP localhost.localdomain:ssh->192.168.18.1:10382 (ESTABLISHED)
sshd     6769 root    3u  IPv4  37590      0t0  TCP localhost.localdomain:ssh->192.168.18.1:10681 (ESTABLISHED)
sshd    17484 root    3u  IPv4  79566      0t0  TCP localhost.localdomain:ssh->192.168.18.1:8799 (ESTABLISHED)
sshd    17488  yq1    3u  IPv4  79566      0t0  TCP localhost.localdomain:ssh->192.168.18.1:8799 (ESTABLISHED)

2.4 ss

  • 查看套接字,将套接字与进程联系

  • 套接字文件:存储ip和端口的结合

	ss		[选项]
		-a			#显示监听和建立连接的套接字
		-t			#输出TCP套接字
		-u			#输出UDP套接字
		-n			#以端口号显示(默认显示服务名称)
		-p			#显示使用套接字的进程
[root@localhost ~]# ss -anpt
State       Recv-Q Send-Q                           Local Address:Port                                          Peer Address:Port              
LISTEN      0      128                                          *:22                                                       *:*                   users:(("sshd",pid=6434,fd=3))
LISTEN      0      100                                  127.0.0.1:25                                                       *:*                   users:(("master",pid=6585,fd=13))
ESTAB       0      0                               192.168.18.134:22                                            192.168.18.1:10681               users:(("sshd",pid=6769,fd=3))
ESTAB       0      0                               192.168.18.134:22                                            192.168.18.1:10382               users:(("sshd",pid=6702,fd=3))
ESTAB       0      0                               192.168.18.134:22                                            192.168.18.1:8799                users:(("sshd",pid=17488,fd=3),("sshd",pid=17484,fd=3))
LISTEN      0      128                                         :::22                                                      :::*                   users:(("sshd",pid=6434,fd=4))
LISTEN      0      100                                        ::1:25                                                      :::*                   users:(("master",pid=6585,fd=14))
注意:
	fd:文件描述符
	内核用于管理已被打开的文件创建索引,用来指向被打开的文件

3 前、后台进程切换、nice进程优先级,screen终端复用工具

3.1前后台进程

	前台进程:命令执行中持续占用前台
	后台进程:		命令		&		#将命令执行放入后台
	依赖终端:进程的控制终端
	后台运行并脱离终端:守护进程(Daemon)
			单次将命令放入后台运行,并脱离终端
				格式:
					nohup  命令  &
			练:ping		ip	实现脱离终端放入后台运行
[root@localhost ~]# nohup ping 127.0.0.1 &
[1] 18628
[root@localhost ~]# nohup: 忽略输入并把输出追加到"nohup.out"

3.2 &

  • 用在命令的最后,可以将命令放到后台执行
ctrl	+	z		#暂停挂起作业
jobs				#查看已经挂起的作业
[root@localhost ~]# jobs
[1]+  已停止               vim yq.txt

# fg  数字		#继续作业
# bg  数字		#后台暂停的作业,继续后台执行

3.3 kill、killall、pkill

1)kill -l #列出所有支持的信号

[root@localhost ~]# kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX	

​ kill -2 pid #sigint信号,键盘终端 ctrl+c

终端1:

[root@localhost ~]# ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.019 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.023 ms
64 bytes from 127.0.0.1: icmp_seq=45 ttl=64 time=0.021 ms

--- 127.0.0.1 ping statistics ---
45 packets transmitted, 45 received, 0% packet loss, time 44002ms
rtt min/avg/max/mdev = 0.018/0.026/0.068/0.012 ms

终端2:

[root@localhost ~]# ps aux|grep ping |grep -v grep
root      17715  0.0  0.1 128440  1272 pts/0    S+   17:44   0:00 ping 127.0.0.1
[root@localhost ~]# kill -2 17715

​ kill -9 PID #sigkill信号 强制终止

#终端1
[root@localhost ~]# ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.029 ms
64 bytes from 127.0.0.1: icmp_seq=16 ttl=64 time=0.021 ms
64 bytes from 127.0.0.1: icmp_seq=17 ttl=64 time=0.022 ms
64 bytes from 127.0.0.1: icmp_seq=18 ttl=64 time=0.022 ms
64 bytes from 127.0.0.1: icmp_seq=19 ttl=64 time=0.023 ms
已杀死
#终端2
[root@localhost ~]# ps aux |grep ping |grep -v grep
root      17859  0.0  0.1 128440  1272 pts/0    S+   17:54   0:00 ping 127.0.0.1
[root@localhost ~]# kill -9 17859

​ kill -15 PID #sigterm信号 终止(正常结束)缺省信号

#终端1
[root@localhost ~]# ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.022 ms
64 bytes from 127.0.0.1: icmp_seq=18 ttl=64 time=0.024 ms
64 bytes from 127.0.0.1: icmp_seq=19 ttl=64 time=0.022 ms
64 bytes from 127.0.0.1: icmp_seq=20 ttl=64 time=0.023 ms
已终止
#终端2
[root@localhost ~]# ps aux |grep ping |grep -v grep
root      17863  0.0  0.1 128440  1268 pts/0    S+   17:55   0:00 ping 127.0.0.1
[root@localhost ~]# kill -15 17863

2) killall 名称

​ killall -i 名称 #交互式逐一确认杀死

[root@localhost ~]# killall -i sshd
杀死 sshd(17810) ? (y/N) n
杀死 sshd(17811) ? (y/N) n

3) pkill 命令

​ pkill -9 -t 终端号 #按照终端号踢出用户

#终端1执行踢出命令
[root@localhost ~]# pkill -9 -t pts/
#终端2执行w查看,并在终端1执行踢出后再查看
[root@localhost ~]# w |grep w
root     pts/3    192.168.18.1     17:57    0.00s  0.03s  0.01s w
[root@localhost ~]# 
Connection closed by foreign host.
Disconnected from remote host(192.168.18.134:22) at 17:58:20.
Type `help' to learn how to use Xshell prompt.
[c:\~]$ 

3.4 进程优先级管理

优先级取值范围(-20,19),数值越小,优先级越高,默认优先级是0
nice  -n  [+-]数字  命令			#修改命令优先级(未在进程中的命令)
#终端1	修改命令优先级
[root@localhost ~]# nice -n 5 vim /root/yq.txt 

~                                                                                                                                
~
#终端2	查看命令优先级修改效果
[root@localhost ~]# ps aux | grep yq.txt |grep -v grep 
root      17989  0.0  0.5 151568  5252 pts/0    SN+  18:08   0:00 vim /root/yq.txt
[root@localhost ~]# top -p 17989
top - 18:09:23 up  7:32,  4 users,  load average: 0.00, 0.01, 0.05
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   995924 total,   476164 free,   113360 used,   406400 buff/cache
KiB Swap:   307196 total,   307196 free,        0 used.   681856 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                    
 17989 root      25   5  151568   5252   2732 S   0.0  0.5   0:00.02 vim

renice -n [+-]数字 PID #修改PID优先级(正在进程中的PID)

[root@localhost ~]# ps aux |grep yq.txt |grep -v grep
root      17989  0.0  0.5 151568  5252 pts/0    SN+  18:08   0:00 vim /root/yq.txt
[root@localhost ~]# renice  -n -15 17989
17989 (进程 ID) 旧优先级为 5,新优先级为 -15
[root@localhost ~]# top -p 17989
top - 18:14:57 up  7:37,  4 users,  load average: 0.00, 0.01, 0.05
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   995924 total,   475968 free,   113360 used,   406596 buff/cache
KiB Swap:   307196 total,   307196 free,        0 used.   681668 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                    
 17989 root       5 -15  151568   5252   2732 S   0.0  0.5   0:00.02 vim

3.5 screen

终端复用工具,可让bash脱离终端,可用于备份(需要yum安装)

## screen		-S		名称			#创建自定义名称的脱离终端
[root@localhost ~]# screen -S yq_out
## screen		-ls					#查看
[root@localhost ~]# screen -ls
There is a screen on:
        18044.yq_out    (Attached)
1 Socket in /var/run/screen/S-root
## screen		-r			名称		#连接脱离终端
[root@localhost ~]# screen -r yq_out

## exit			#退出当前

练习:使用screen实现后台备份

13 定时计划任务与日志管理

服务:放入后台,脱离终端运行

1 定时计划任务

1.1 at

at 突发性一次计划

crontab 周期性循环计划

at设置前的准备:

检查at服务是否启动开启,是否开机自启动

## 安装at
[root@localhost ~]# rpm -qa |grep ^at
[root@localhost ~]# yum -y install at

## 启动atd
$ systemctl		start		atd				#启动atd服务
$ systemctl 	state 		atd				#检查atd服务状态
[root@localhost ~]# systemctl state atd
Unknown operation 'state'.
[root@localhost ~]# systemctl status atd
● atd.service - Job spooling tools
   Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
   Active: active (running) since 二 2022-09-20 19:29:39 CST; 1min 47s ago
 Main PID: 18716 (atd)
   CGroup: /system.slice/atd.service
           └─18716 /usr/sbin/atd -f

9月 20 19:29:39 localhost.localdomain systemd[1]: Started Job spooling tools.
## systemctl 		is-enabled		atd			#是否开机运行
[root@localhost ~]# systemctl is-enabled atd
enabled

## systemctl 		disable		服务			#服务停用开机自启动
## systemctl 		enable		服务			#服务启用开机自启动

## 启动、自启动atd
[root@localhost ~]# systemctl enable atd --now

at定时任务设置
## at			时间			#交互式设置定时任务

[root@localhost ~]# at now+2min
at> 
## at			时间		<		a.txt			#(重定向设置)在某个时间设置定时任务为a.txt文件内容的命令

[root@localhost ~]# ls
anaconda-ks.cfg  yq.txt
[root@localhost ~]# at now+1min < yq.txt
job 8 at Tue Sep 20 20:00:00 2022
[root@localhost ~]# ls
anaconda-ks.cfg  yq.txt
[root@localhost ~]# date
2022年 09月 20日 星期二 20:00:02 CST
[root@localhost ~]# ls
anaconda-ks.cfg  yq  yq.txt

常见的at时间设置

[root@localhost ~]# at 20:00 2023-10-1			#设置定时任务在2023年10月2日
at> <EOT>
job 11 at Sun Oct  1 20:00:00 2023
[root@localhost ~]# at now+1min					#设置定时任务在现在的1分钟以后
at> <EOT>
job 12 at Tue Sep 20 20:13:00 2022
[root@localhost ~]# at 17:00 tomorrow			#设置定时任务在明天的17点
at> <EOT>
job 13 at Wed Sep 21 17:00:00 2022
[root@localhost ~]# at 6:00 pm +3 days			#设置定时任务在三天后的下午6点
at> <EOT>
job 14 at Fri Sep 23 18:00:00 2022
at定时任务查看

​ at -l #查看所有at设置的定时任务

[root@localhost ~]# at -l
10	Tue Sep 20 20:15:00 2022 a root

​ atq #查看所有at设置的定时任务

[root@localhost ~]# atq
10	Tue Sep 20 20:15:00 2022 a root

注:只能查看未执行的定时任务,已经完成的不会显示

## at		-c			数字		#查看指定条数的定时任务(普通用户)

[root@localhost ~]# at -c 10
#!/bin/sh
# atrun uid=0 gid=0
# mail root 0
umask 22
XDG_SESSION_ID=24; export XDG_SESSION_ID
HOSTNAME=localhost.localdomain; export HOSTNAME
SELINUX_ROLE_REQUESTED=; export SELINUX_ROLE_REQUESTED
SHELL=/bin/bash; export SHELL
HISTSIZE=1000; export HISTSIZE
SSH_CLIENT=192.168.18.1\ 3074\ 22; export SSH_CLIENT
SELINUX_USE_CURRENT_RANGE=; export SELINUX_USE_CURRENT_RANGE
SSH_TTY=/dev/pts/1; export SSH_TTY
USER=root; export USER
LS_COLORS=rs=0:di=01\;34:ln=01\;36:mh=00:pi=40\;33:so=01\;35:do=01\;35:bd=40\;33\;01:cd=40\;33\;01:or=40\;31\;01:mi=01\;05\;37\;41:su=37\;41:sg=30\;43:ca=30\;41:tw=30\;42:ow=34\;42:st=37\;44:ex=01\;32:\*.tar=01\;31:\*.tgz=01\;31:\*.arc=01\;31:\*.arj=01\;31:\*.taz=01\;31:\*.lha=01\;31:\*.lz4=01\;31:\*.lzh=01\;31:\*.lzma=01\;31:\*.tlz=01\;31:\*.txz=01\;31:\*.tzo=01\;31:\*.t7z=01\;31:\*.zip=01\;31:\*.z=01\;31:\*.Z=01\;31:\*.dz=01\;31:\*.gz=01\;31:\*.lrz=01\;31:\*.lz=01\;31:\*.lzo=01\;31:\*.xz=01\;31:\*.bz2=01\;31:\*.bz=01\;31:\*.tbz=01\;31:\*.tbz2=01\;31:\*.tz=01\;31:\*.deb=01\;31:\*.rpm=01\;31:\*.jar=01\;31:\*.war=01\;31:\*.ear=01\;31:\*.sar=01\;31:\*.rar=01\;31:\*.alz=01\;31:\*.ace=01\;31:\*.zoo=01\;31:\*.cpio=01\;31:\*.7z=01\;31:\*.rz=01\;31:\*.cab=01\;31:\*.jpg=01\;35:\*.jpeg=01\;35:\*.gif=01\;35:\*.bmp=01\;35:\*.pbm=01\;35:\*.pgm=01\;35:\*.ppm=01\;35:\*.tga=01\;35:\*.xbm=01\;35:\*.xpm=01\;35:\*.tif=01\;35:\*.tiff=01\;35:\*.png=01\;35:\*.svg=01\;35:\*.svgz=01\;35:\*.mng=01\;35:\*.pcx=01\;35:\*.mov=01\;35:\*.mpg=01\;35:\*.mpeg=01\;35:\*.m2v=01\;35:\*.mkv=01\;35:\*.webm=01\;35:\*.ogm=01\;35:\*.mp4=01\;35:\*.m4v=01\;35:\*.mp4v=01\;35:\*.vob=01\;35:\*.qt=01\;35:\*.nuv=01\;35:\*.wmv=01\;35:\*.asf=01\;35:\*.rm=01\;35:\*.rmvb=01\;35:\*.flc=01\;35:\*.avi=01\;35:\*.fli=01\;35:\*.flv=01\;35:\*.gl=01\;35:\*.dl=01\;35:\*.xcf=01\;35:\*.xwd=01\;35:\*.yuv=01\;35:\*.cgm=01\;35:\*.emf=01\;35:\*.axv=01\;35:\*.anx=01\;35:\*.ogv=01\;35:\*.ogx=01\;35:\*.aac=01\;36:\*.au=01\;36:\*.flac=01\;36:\*.mid=01\;36:\*.midi=01\;36:\*.mka=01\;36:\*.mp3=01\;36:\*.mpc=01\;36:\*.ogg=01\;36:\*.ra=01\;36:\*.wav=01\;36:\*.axa=01\;36:\*.oga=01\;36:\*.spx=01\;36:\*.xspf=01\;36:; export LS_COLORS
MAIL=/var/spool/mail/root; export MAIL
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin; export PATH
PWD=/root; export PWD
LANG=zh_CN.UTF-8; export LANG
SELINUX_LEVEL_REQUESTED=; export SELINUX_LEVEL_REQUESTED
HISTCONTROL=ignoredups; export HISTCONTROL
SHLVL=1; export SHLVL
HOME=/root; export HOME
LOGNAME=root; export LOGNAME
SSH_CONNECTION=192.168.18.1\ 3074\ 192.168.18.134\ 22; export SSH_CONNECTION
LESSOPEN=\|\|/usr/bin/lesspipe.sh\ %s; export LESSOPEN
XDG_RUNTIME_DIR=/run/user/0; export XDG_RUNTIME_DIR
cd /root || {
	 echo 'Execution directory inaccessible' >&2
	 exit 1
}
${SHELL:-/bin/sh} << 'marcinDELIMITER6d749ca8'
init 6																				#设置的定时任务

marcinDELIMITER6d749ca8
## ls		/var/spool/at/			#以文件形式查看定时任务(root用户)

[root@localhost ~]# ls /var/spool/at
a0000a01a7183f  spool
at删除
 	atrm  数字						#普通用户删除定时任务
 	rm  -rf  /var/spool/at/文件名		#root用户删除定时任务

1.2 crontab

检查crond服务
[root@localhost ~]# systemctl status crond
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since 二 2022-09-20 18:37:10 CST; 1h 42min ago
 Main PID: 6121 (crond)
   CGroup: /system.slice/crond.service
           └─6121 /usr/sbin/crond -n

9月 20 18:37:10 localhost.localdomain systemd[1]: Started Command Scheduler.
9月 20 18:37:10 localhost.localdomain crond[6121]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 8% if used.)
9月 20 18:37:11 localhost.localdomain crond[6121]: (CRON) INFO (running with inotify support
设置crontab
crontab		[选项]
	-e			#设置
	-l			#查看
	-u			#指定用户
	-r			#删除
[root@localhost ~]# crontab -e 

*/1 * * * * date | xargs >>  /root/yq.txt			#每分钟将本地时间追加式写入yq.txt


[root@localhost ~]# date && cat yq.txt				#检查
2022年 09月 20日 星期二 20:44:39 CST
2022年 09月 20日 星期二 20:38:07 CST

2022年 09月 20日 星期二 20:38:54 CST
2022年 09月 20日 星期二 20:38:59 CST

[root@localhost ~]# date && cat yq.txt
2022年 09月 20日 星期二 20:45:29 CST
2022年 09月 20日 星期二 20:38:07 CST

2022年 09月 20日 星期二 20:38:54 CST
2022年 09月 20日 星期二 20:38:59 CST


2022年 09月 20日 星期二 20:45:01 CST
排查定时任务
## 普通用户:			crontab			-l

[root@localhost ~]# crontab -l
*/1 * * * * date | xargs >>  /root/yq.txt
## root用户:			crontab		-u		用户名		-l

[root@localhost ~]# crontab -u yq1 -l
*/1 * * * * mail -s "hello" root@192.168.18.134 < /etc/fstab
## ll		/var/spool/cron

[root@localhost ~]# ll /var/spool/cron
总用量 8
-rw-------. 1 root root 42 9月  20 20:44 root
-rw-------. 1 yq1  yq1  61 9月  20 20:49 yq1
crontab -e 语法
					分		时		日		月		周		命令
			*		#任意					取值范围内数字
			/		#每					时间间隔频率
			-		#数字-数字			  连续数字	
			,	   #数字,数字		     离散数字

常见写法:

0	21	*	*	*						#每天21点

45	4	1,10,22	*	*				   #每月1、10、22日的4点45分

45 	4	1-10	*	*				     #每月1到10日的4点45分

3,15	8-11	*/2	*	*		        #每隔两天,上午的8点到11点每个小时的第3和第15分钟

0	23-7/1	*	*	*				    #每天23点到7点。每隔一小时

15	21	*	*	1-5					    #每周一到周五,每天的21点15分

 
#系统级别的定时任务
[root@localhost ~]# ll /etc/crontab
-rw-r--r--. 1 root root 451 6月  10 2014 /etc/crontab
#系统任务调度的配置文件

at、cron黑白名单

白名单优先级更高

黑名单默认为空,其他都允许,加入则拒绝执行

白名单默认为空,其他都拒绝,加入则允许执行

/etc/at.deny				#at黑名单
/etc/cron.deny				#cron黑名单
/etc/at.allow				#at白名单
/etc/cron.allow				#cron白名单