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白名单