请选择 进入手机版 | 继续访问电脑版

花城都市网

搜索
查看: 596|回复: 0

Linux/Centos7系统管理之进程与计划任务管理

[复制链接]

2130

主题

2130

帖子

7275

积分

伴坛终老

Rank: 6Rank: 6

积分
7275
发表于 2021-7-28 11:21:22 | 显示全部楼层 |阅读模式
广州信息网
[align=center]

Linux/Centos7系统管理之进程与计划任务管理

Linux/Centos7系统管理之进程与计划任务管理
[/align]
[align=left][align=left]Linux/Centos7[font=宋体]系统管理之进程与计划任务管理查看进程[/font][font=Calibri]——[/font][font=宋体]静态和动态查看控制进程[/font][font=Calibri]——[/font][font=宋体]条件和全部[/font][font=Calibri]at [/font][font=宋体]一次性任务设置[/font][font=Calibri]crontab [/font][font=宋体]周期性任务设置一、程序和进程的关系([/font][font=Calibri]1[/font][font=宋体])概念程序:保存在硬盘、光盘等介质中的可执行代码和数据,属于静态保存的代码[/font]
[font=宋体]进程:在[/font]CPU[font=宋体]及内存中运行的程序代码,属于动态执行的代码[/font]
[font=宋体]([/font]2[font=宋体])如何理解应用程序、进程及线程的概念和联系应用程序[/font][font=Calibri]——[/font][font=宋体]工厂进程[/font][font=Calibri]——[/font][font=宋体]车间线程[/font][font=Calibri]——[/font][font=宋体]工人一个应用程序可以包含一个或多个进程,一个进程包含一个或多个线程,线程是执行操作的最小单元[/font]
ps[font=宋体]:对应高并发处理[/font][font=Calibri]===[/font][font=宋体]使用多线程操作[/font]
[font=宋体]二、进程相关命令([/font]1[font=宋体])查看进程信息[/font][font=Calibri]psps [/font][font=宋体]命令[/font][font=Calibri]——[/font][font=宋体]不是[/font][font=Calibri]Photoshop[/font][font=宋体]哈![/font]
man [font=宋体]手册对其作用的描述是这样的:[/font][font=Calibri]“displays information about a selection of the active processes.  If you want a repetitive update of the selection and the displayed information, use top(1) instead.”[/font]
[font=宋体]其意思为:显示有关活动进程的选择的信息。如果希望对选择和显示的信息进行重复更新,请使用[/font]top[font=宋体](这里的[/font][font=Calibri]top[/font][font=宋体]也是查看进程的信息的,但是是动态查看,下面会具体讲述)[/font]
[font=宋体]([/font]2[font=宋体])[/font][font=Calibri]ps[/font][font=宋体]命令的格式[/font][font=Calibri]ps [[/font][font=宋体]选项[/font][font=Calibri]] [[/font][font=宋体]参数[/font]
[font=宋体]在[/font]man [font=宋体]手册上给出的案例我节选部分常用的出来进行演示和讲述:[/font]
-aux [font=宋体]:[/font][font=Calibri]“-”[/font][font=宋体]可以省略,表示查看系统中使用[/font][font=Calibri]BSD[/font][font=宋体]语法规则的每个进程 [/font]
-elf[font=宋体]:表示查看系统中使用标准语法的每个进程,不能省略[/font][font=Calibri]“-”[/font]
[font=宋体]实例如下:[/font]
[root@lokott ~]# ps aux                 //ps -aux[font=宋体]也一样[/font][font=Calibri]USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMANDroot          1  0.0  0.4 210140  4864 ?        Ss   14:23   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 21root          2  0.0  0.0      0     0 ?        S    14:23   0:00 [kthreadd]root          3  0.0  0.0      0     0 ?        S    14:23   0:00 [ksoftirqd/0]root          5  0.0  0.0      0     0 ?        S<   14:23   0:00 [kworker/0:0H]root          6  0.0  0.0      0     0 ?        S    14:23   0:00 [kworker/u256:0]root          7  0.0  0.0      0     0 ?        S    14:23   0:00 [migration/0]root          8  0.0  0.0      0     0 ?        S    14:23   0:00 [rcu_bh]root          9  0.0  0.0      0     0 ?        R    14:23   0:00 [rcu_sched]...[/font][font=宋体]解释:[/font][font=Calibri]PID[/font][font=宋体]表示进程[/font][font=Calibri]ID[/font][font=宋体],[/font][font=Calibri]%CPU[/font][font=宋体]表示[/font][font=Calibri]CPU[/font][font=宋体]使用率,[/font][font=Calibri]%MEM[/font][font=宋体]表示内存使用率,[/font][font=Calibri]TTY[/font][font=宋体]表示终端,[/font][font=Calibri]STAT[/font][font=宋体]表示的是状态[/font][font=Calibri]:S [/font][font=宋体]是[/font][font=Calibri]sleep[/font][font=宋体]可中断,[/font][font=Calibri]s[/font][font=宋体]表示父进程,[/font][font=Calibri]<[/font][font=宋体]表示的是优先级高,[/font][font=Calibri]R[/font][font=宋体]正在运行的进程, [/font][font=Calibri]l[/font][font=宋体]表示的是多线性进程,[/font][font=Calibri]N[/font][font=宋体]优先级低,[/font][font=Calibri]Z[/font][font=宋体]僵尸进程,[/font][font=Calibri]D[/font][font=宋体]不可中断休眠进程,[/font][font=Calibri]+[/font][font=宋体]前台进程。[/font]
[root@lokott ~]# ps -elf    //[font=宋体]当前[/font][font=Calibri]-[/font][font=宋体]长格式[/font][font=Calibri]—[/font][font=宋体]完整形式                  [/font][font=Calibri]F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD4 S root          1      0  0  80   0 - 52535 ep_pol 14:23 ?        00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 211 S root          2      0  0  80   0 -     0 kthrea 14:23 ?        00:00:00 [kthreadd]1 S root          3      2  0  80   0 -     0 smpboo 14:23 ?        00:00:00 [ksoftirqd/0]1 S root          5      2  0  60 -20 -     0 worker 14:23 ?        00:00:00 [kworker/0:0H]1 S root          6      2  0  80   0 -     0 worker 14:23 ?        00:00:00 [kworker/u256:0]1 S root          7      2  0 -40   - -     0 smpboo 14:23 ?        00:00:00 [migration/0]1 S root          8      2  0  80   0 -     0 rcu_gp 14:23 ?        00:00:00 [rcu_bh]....[/font][font=宋体]解释:[/font][font=Calibri]PPID[/font][font=宋体]表示父进程 [/font][font=Calibri]PRI[/font][font=宋体]表示的是用户态的优先级 [/font][font=Calibri]NI[/font][font=宋体]表示的是[/font][font=Calibri]NICE[/font][font=宋体]值(内核),范围是([/font][font=Calibri]-20~19[/font][font=宋体])值越低越优先[/font]
[font=宋体],[/font]SZ[font=宋体]交换分区占用的空间大小[/font]
[font=宋体]([/font]3[font=宋体])补充在[/font][font=Calibri]ps[/font][font=宋体]命令中一般可以结合管道符号和[/font][font=Calibri]grep[/font][font=宋体]等命令组合使用,提高工作效率[/font]
[font=宋体]([/font]4[font=宋体])动态查看[/font][font=Calibri]top[root@lokott ~]# top                     //[/font][font=宋体]每三秒会自动刷新一次[/font][font=Calibri]top - 15:58:48 up  1:35,  3 users,  load average: 0.00, 0.01, 0.05Tasks: 190 total,   1 running, 189 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 stKiB Mem :   999696 total,    65636 free,   711552 used,   222508 buff/cacheKiB Swap:  4194300 total,  4160824 free,    33476 used.    78272 avail Mem    PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                619 root      20   0  231608   3264   2836 S  0.3  0.3   0:03.25 vmtoolsd                                                                              4582 root      20   0       0      0      0 S  0.3  0.0   0:00.20 kworker/0:2                                                                              1 root      20   0  210140   4864   3024 S  0.0  0.5   0:01.35 systemd                                                                                  2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd                                                                                 3 root      20   0       0      0      0 S  0.0  0.0   0:00.06 ksoftirqd/0                                                                              5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H        .....[/font][font=宋体]在[/font][font=Calibri]top[/font][font=宋体]命令下,进程的查看是动态变化的,[/font][font=Calibri]m[/font][font=宋体]可以进行内存使用率排序[/font][font=Calibri]c[/font][font=宋体]可以进行[/font][font=Calibri]cpu[/font][font=宋体]排序,[/font][font=Calibri]q[/font][font=宋体]可以退出,或者[/font][font=Calibri]Ctrl+c[/font][font=宋体]直接终止该命令。[/font]
[font=宋体]四、条件查看进程[/font]pgrep[font=宋体]命令[/font]
[font=宋体]在[/font]man[font=宋体]手册中[/font][font=Calibri]pgrep[/font][font=宋体]和[/font][font=Calibri]pkill[/font][font=宋体]是放在一起的,如下所示:[/font]
NAME                    //[font=宋体]命令名称,根据名字或者其他属性查找进程[/font]
pgrep, pkill - look up or signal processes based on name and other attributes
SYNOPSIS               //[font=宋体]表示的是命令的格式[/font]
pgrep [options] pattern
pkill [options] pattern
DESCRIPTION
pgrep  looks through the currently running processes and lists the process IDs which match the selection criteria to stdout.  All the criteria have to match.  For example,
          $ pgrep -u root sshd   will only list the processes called sshd AND owned by root.  On the other hand,          $ pgrep -u root,daemon   will list the processes owned by root OR daemon.   pkill will send the specified signal (by default SIGTERM) to each process instead of listing them on stdout.[font=宋体]那么我就根据上面给出的例子来进行实验:([/font][font=Calibri]pkill[/font][font=宋体]下面有讲)[/font]
[root@lokott ~]# pgrep -u root sshd               //[font=宋体]仅仅列出名称为[/font][font=Calibri]sshd[/font][font=宋体]且属于[/font][font=Calibri]root[/font][font=宋体]的进程号[/font][font=Calibri]10022820[root@lokott ~]# pgrep -u root,daemon |wc -l      //[/font][font=宋体]列出属于[/font][font=Calibri]root[/font][font=宋体]或者[/font][font=Calibri]daemon[/font][font=宋体]的所有进程号到管道中统计数量[/font][font=Calibri]175[root@lokott ~]# pgrep -l "log"                 //[/font][font=宋体]查看包含[/font][font=Calibri]log[/font][font=宋体]的进程[/font][font=Calibri]id[/font][font=宋体]和信息[/font][font=Calibri]292 xfs-log/sda2479 xfs-log/sda5480 xfs-log/sda1593 abrt-watch-log596 systemd-logind601 rsyslogd602 abrt-watch-log2735 xfs-log/md0[/font][font=宋体]树型查看[/font][font=Calibri]——pstree[/font]
-aup “-”[font=宋体]不可以省略,[/font][font=Calibri]pstree -ap [/font][font=宋体]用户名[/font]
[font=宋体]五、进程的启动方式[/font]1.[font=宋体]启动进程([/font][font=Calibri]1[/font][font=宋体])手工启动前台启动:用户输入命令,直接执行程序[/font]
[font=宋体]后台启动:在命令行尾加入[/font]“&”[font=宋体]符号[/font]
[font=宋体]([/font]2[font=宋体])调度启动进程的前后台调度[/font]
Ctrl+z——[font=宋体]停止进程[/font]
jobs -l ——[font=宋体]查看进程状态[/font]
fg [font=宋体]序号[/font][font=Calibri]——[/font][font=宋体]将进程掉到前台来执行[/font]
bg [font=宋体]序号[/font][font=Calibri]——[/font][font=宋体]将停止的进程在后台继续执行[/font]
[root@lokott ~]# umount /mnt[root@lokott ~]# mount /dev/sr0 /mntmount: /dev/sr0 [font=宋体]写保护,将以只读方式挂载[/font][font=Calibri][root@lokott ~]# df -hT[/font][font=宋体]文件系统       类型      容量  已用  可用 已用[/font][font=Calibri]% [/font][font=宋体]挂载点[/font][font=Calibri]/dev/sda2      xfs        20G  4.4G   16G   22% /devtmpfs       devtmpfs  474M     0  474M    0% /devtmpfs          tmpfs     489M     0  489M    0% /dev/shmtmpfs          tmpfs     489M  7.2M  482M    2% /runtmpfs          tmpfs     489M     0  489M    0% /sys/fs/cgroup/dev/sda5      xfs        10G   37M   10G    1% /home/dev/sda1      xfs       6.0G  158M  5.9G    3% /boottmpfs          tmpfs      98M  4.0K   98M    1% /run/user/42tmpfs          tmpfs      98M   24K   98M    1% /run/user/0/dev/sr0       iso9660   4.3G  4.3G     0  100% /mnt[root@lokott ~]# cd /mnt/[root@lokott mnt]# lsCentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7EULA             isolinux  repodata  TRANS.TBL[root@lokott mnt]# cd [root@lokott ~]# cp -r /mnt/Packages/ /opt/ &               //&[/font][font=宋体]符号就是将该命令放在后台运行[/font][font=Calibri][1] 5354[root@lokott ~]# jobs -l                                  //[/font][font=宋体]查看进程完成状态[/font][font=Calibri][1]+  5354 [/font][font=宋体]完成                  [/font][font=Calibri]cp -i -r /mnt/Packages/ /opt/[root@lokott ~]# cp -r /mnt/Packages/ /opt/                  //[/font][font=宋体]删除原来的然后重新再前台执行命令[/font][font=Calibri]^Z[1]+  [/font][font=宋体]已停止               [/font][font=Calibri]cp -i -r /mnt/Packages/ /opt/[root@lokott ~]# jobs -l                                  //[/font][font=宋体]查看进程状态[/font][font=Calibri][1]+  5403 [/font][font=宋体]停止                  [/font][font=Calibri]cp -i -r /mnt/Packages/ /opt/[root@lokott ~]# fg 1                                     //[/font][font=宋体]调出后台进程到前台来进行运行[/font][font=Calibri]cp -i -r /mnt/Packages/ /opt/^Z[1]+  [/font][font=宋体]已停止               [/font][font=Calibri]cp -i -r /mnt/Packages/ /opt/[root@lokott ~]# kill -9 5403                                //[/font][font=宋体]强制[/font][font=Calibri]kill [/font][font=宋体]掉进程([/font][font=Calibri]-9[/font][font=宋体])[/font][font=Calibri][root@lokott ~]# jobs -l[1]+  5403 [/font][font=宋体]已杀死               [/font][font=Calibri]cp -i -r /mnt/Packages/ /opt/[/font][font=宋体]([/font][font=Calibri]3[/font][font=宋体])终止进程[/font][font=Calibri]Ctrl+c ——[/font][font=宋体]中断正在执行的命令[/font]
1.kill[font=宋体]、[/font][font=Calibri]killall[/font][font=宋体]命令[/font]
kill[font=宋体]用于终止指定[/font][font=Calibri]PID[/font][font=宋体]号的进程 [/font][font=Calibri]-9 [/font][font=宋体]表示强制终止[/font]
killall[font=宋体]用于终止指定名称的所有进程[/font]
[font=宋体]上面的实例中已经给出了[/font]kill [font=宋体]的实例,下面看一下[/font][font=Calibri]killall[/font][font=宋体]的实例:[/font]
[root@lokott ~]# vim 1.sh &[3] 5696[root@lokott ~]# vim 2.sh &[4] 5697[3]+  [font=宋体]已停止               [/font][font=Calibri]vim 1.sh[root@lokott ~]# jobs -l[1]   5694 [/font][font=宋体]停止 [/font][font=Calibri](tty [/font][font=宋体]输出[/font][font=Calibri])     vim 1.sh[2]   5695 [/font][font=宋体]停止 [/font][font=Calibri](tty [/font][font=宋体]输出[/font][font=Calibri])     vim 1.sh[3]-  5696 [/font][font=宋体]停止 [/font][font=Calibri](tty [/font][font=宋体]输出[/font][font=Calibri])     vim 1.sh[4]+  5697 [/font][font=宋体]停止 [/font][font=Calibri](tty [/font][font=宋体]输出[/font][font=Calibri])     vim 2.sh[root@lokott ~]# killall -9 vim[1]   [/font][font=宋体]已杀死               [/font][font=Calibri]vim 1.sh[2]   [/font][font=宋体]已杀死               [/font][font=Calibri]vim 1.sh[3]-  [/font][font=宋体]已杀死               [/font][font=Calibri]vim 1.sh[4]+  [/font][font=宋体]已杀死               [/font][font=Calibri]vim 2.sh[root@lokott ~]# 2.pkill[/font][font=宋体]命令[/font]
[font=宋体]根据特定条件终止相应的进程[/font]——pkill[font=宋体]命令(实际上用的非常多)[/font]
-U[font=宋体]:根据进程所属的用户名终止相应进程[/font]
-t[font=宋体]:根据进程所在的终端终止相应进程[/font]
[root@lokott ~]# pgrep -l -U "zhangsan"1472 gnome-keyring-d1491 gnome-session-b1498 dbus-launch1499 dbus-daemon1557 gvfsd1562 gvfsd-fuse1649 ssh-agent1668 at-spi-bus-laun1673 dbus-daemon1678 at-spi2-registr1695 gnome-shell.......2208 gvfsd-metadata2211 ibus-engine-sim[root@lokott ~]# pkill -9 -U zhangsan  //[font=宋体]前台是本地是张三登录的状态此时服务器那边会将[/font][font=Calibri]zhangsan[/font][font=宋体]用户踢出,然后到登录界面小结:普通用户是无法用[/font][font=Calibri]pkill[/font][font=宋体]命令踢出[/font][font=Calibri]root[/font][font=宋体],但可以用[/font][font=Calibri]pgrep[/font][font=宋体]查看[/font]
[font=宋体]六、计划任务管理([/font]1[font=宋体])[/font][font=Calibri]at[/font][font=宋体]命令设置计划任务命令格式[/font][font=Calibri]——at  [HH:MM] [yyyy-mm-dd][/font]
[font=宋体]注意:这个命令是必须将时间用在之后的时间,例如:[/font]at 10:33 2020-08-05
[font=宋体]然后输入命令,最后[/font]Ctrl+D
date[font=宋体]命令[/font][font=Calibri]——[/font][font=宋体]获取当前时间[/font]
atq——[font=宋体]查看准备被执行的进程列表[/font]
atrm 2——[font=宋体]删除[/font]
[font=宋体]请看实例:[/font]
[root@lokott ~]# date                                            //[font=宋体]显示当前时间[/font][font=Calibri]2019[/font][font=宋体]年 [/font][font=Calibri]11[/font][font=宋体]月 [/font][font=Calibri]12[/font][font=宋体]日 星期二 [/font][font=Calibri]17:28:24 CST[root@lokott ~]# at 17:35 2019-11-12                           //[/font][font=宋体]设定计划任务[/font][font=Calibri]at> pgrep -U root |wc -l > /opt/ps.txtat> <EOT>job 1 at Tue Nov 12 17:35:00 2019[root@lokott ~]# cat /opt/ps.txt                               //[/font][font=宋体]由于时间未到所有没法看到[/font][font=Calibri]cat: /opt/ps.txt: [/font][font=宋体]没有那个文件或目录[/font][font=Calibri][root@lokott ~]# atq1   Tue Nov 12 17:35:00 2019 a root[root@lokott ~]# at 17:34 2019-11-12at> echo "123" > 1.txtat> <EOT>job 2 at Tue Nov 12 17:34:00 2019[root@lokott ~]# atq                                              //[/font][font=宋体]查看一次性任务命令[/font][font=Calibri]1   Tue Nov 12 17:35:00 2019 a root2   Tue Nov 12 17:34:00 2019 a root[root@lokott ~]# ls1.txt                 note   [/font][font=宋体]模板  文档  桌面[/font][font=Calibri]anaconda-ks.cfg       shell  [/font][font=宋体]视频  下载[/font][font=Calibri]initial-setup-ks.cfg  [/font][font=宋体]公共   图片  音乐[/font][font=Calibri][root@lokott ~]# cat 1.txt 123[root@lokott ~]# atrm 1                                       //[/font][font=宋体]删除还未执行的任务[/font][font=Calibri][root@lokott ~]# atq[root@lokott ~]# atrm 1                                          //[/font][font=宋体]已删除和已经完成的任务无法再次删除[/font][font=Calibri]Cannot find jobid 1[/font][font=宋体]该序列号是固定的,而不是动态的,这是为了避免多终端时大家删除任务的时候误删[/font]
[font=宋体]([/font]2[font=宋体])周期性计划任务配置[/font][font=Calibri]——crontab[/font][font=宋体]命令[/font][font=Calibri]crontab[/font][font=宋体]命令(重要)[/font][font=Calibri]——[/font][font=宋体]定时任务(按照预先设置的时间周期重复执行用户指定的命令操作),[/font][font=Calibri]man[/font][font=宋体]手册上的介绍是:[/font][font=Calibri]crontab - maintains crontab files for individual users[/font]
crontab -e [-u ]-l——list-r——remove [font=宋体]所有的编写格式为分 时 日 月 周 命令,下面的[/font][font=Calibri]/etc/crontab[/font][font=宋体]文件中有显示写入格式[/font]
[font=宋体]其中[/font]*[font=宋体]表示该范围内的任意时间,[/font][font=Calibri]-[/font][font=宋体]表示连续的时间[/font]
[font=宋体],表示不连续的时间点,[/font]/[font=宋体]表示频率[/font]
[font=宋体]对于该命令,我的理解就是[/font]——“[font=宋体]私人订制[/font][font=Calibri]”[/font][font=宋体],这个命令可以用来存储一个定时任务制表文件,可以用来对周期性定时任务的设置([/font][font=Calibri]-e[/font][font=宋体])删除[/font][font=Calibri](-r)[/font][font=宋体]和查看[/font][font=Calibri](-l)[/font][font=宋体]等操作,实例如下:[/font]
[root@lokott ~]# which crontab         //[font=宋体]查看[/font][font=Calibri]crontab[/font][font=宋体]命令的位置[/font][font=Calibri]/usr/bin/crontab[root@lokott ~]# cat /etc/crontab      //[/font][font=宋体]查看命令的配置文件信息[/font][font=Calibri]SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root# For details see man 4 crontabs       //[/font][font=宋体]文件写入格式为[/font][font=Calibri]——[/font][font=宋体]分 时 日 月 周  [/font][font=Calibri]# 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[root@lokott ~]# crontab -e     //[/font][font=宋体]打开一个交互窗口写入命令,命令在下面用[/font][font=Calibri]-l[/font][font=宋体]参数可以显示[/font][font=Calibri]no crontab for zhangsan - using an empty onecrontab: installing new crontab[root@lokott ~]# crontab -l     //[/font][font=宋体]显示写入的命令代码,表示每分钟写入一次[/font][font=Calibri]12346* * * * * echo "12346" >> 1.txt[root@lokott ~]# cat 1.txt     hellohello[root@lokott ~]# cat 1.txt hellohello123461234612346[/font][font=宋体]主要的设置文件位置:[/font]
[font=宋体]全局配置文件,位于文件[/font]/etc/crontab  ——[font=宋体]实例中已经给出系统默认的设置位于目录[/font][font=Calibri]/etc/cron.*/[/font][font=宋体]用户定义的设置(必默写)位于文件[/font][font=Calibri]/var/spool/cron/[/font][font=宋体]用户名。在编辑命令的过程中错误的命令被执行的时候会将错误的信息存放到该文件中:[/font][font=Calibri]/var/spool/mail/zhangsan[root@lokott ~]# ls /etc/cron.*//etc/cron.d/:0hourly  raid-check  sysstat/etc/cron.daily/:logrotate  man-db.cron  mlocate/etc/cron.hourly/:0anacron/etc/cron.monthly/:/etc/cron.weekly/:[root@lokott ~]# su - zhangsan[zhangsan@lokott ~]$ crontab -l5 10 * * 1-5 echo "haha" > 1.txt         //[/font][font=宋体]周一至周五[/font][font=Calibri]10[/font][font=宋体]:[/font][font=Calibri]05[/font][font=宋体]执行命令[/font][font=Calibri]6 10 * * 2,4,6 echo "ttuu" >> 1.txt     //[/font][font=宋体]周二、四、六的[/font][font=Calibri]10:06[/font][font=宋体]执行命令[/font][font=Calibri]10 10-14/2 * * * echo "sdas" >> 1.txt   //[/font][font=宋体]每天的[/font][font=Calibri]10[/font][font=宋体]点[/font][font=Calibri]10[/font][font=宋体]分至[/font][font=Calibri]14[/font][font=宋体]点[/font][font=Calibri]10[/font][font=宋体]分每两小时执行一次命令[/font][font=Calibri]*/5 * */2 * * ls ./shell                //[/font][font=宋体]每隔两天,每隔[/font][font=Calibri]5[/font][font=宋体]分钟执行命令[/font][font=Calibri][root@lokott zhangsan]# cat /var/spool/cron/zhangsan      //[/font][font=宋体]用户定义的设置在该文件中[/font][font=Calibri]5 10 * * 1-5 echo "haha" > 1.txt6 10 * * 2,4,6 echo "ttuu" >> 1.txt10 10-14/2 * * * echo "sdas" >> 1.txt*/5 * */2 * * ls ./shell*/1 * * * * echo "sdsad" >> 1.txt[zhangsan@lokott ~]$ crontab -e        //[/font][font=宋体]我准备添加新的计划任务[/font][font=Calibri]crontab: installing new crontab[/font][font=宋体]您在 [/font][font=Calibri]/var/spool/mail/zhangsan [/font][font=宋体]中有新邮件          [/font][font=Calibri]//[/font][font=宋体]提示我有新的内容,其实就是报错的信息,信息如下所示[/font][font=Calibri][zhangsan@lokott ~]$ cat /var/spool/mail/zhangsanFrom [email]zhangsan@lokott.localdomain[/email]  Wed Nov 13 10:05:02 2019Return-Path: <[email]zhangsan@lokott.localdomain[/email]>X-Original-To: zhangsanDelivered-To: [email]zhangsan@lokott.localdomainReceived[/email]: by lokott.localdomain (Postfix, from userid 1001)    id 04DC131C6EDF; Wed, 13 Nov 2019 10:05:01 +0800 (CST)From: "(Cron Daemon)" <[email]zhangsan@lokott.localdomain[/email]>To: [email]zhangsan@lokott.localdomainSubject[/email]: Cron <zhangsan@lokott> ls ./shellContent-Type: text/plain; charset=UTF-8Auto-Submitted: auto-generatedPrecedence: bulkX-Cron-Env: <XDG_SESSION_ID=149>X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/1001>X-Cron-Env: <LANG=zh_CN.UTF-8>X-Cron-Env: <SHELL=/bin/sh>X-Cron-Env: <HOME=/home/zhangsan>X-Cron-Env: <PATH=/usr/bin:/bin>X-Cron-Env: <LOGNAME=zhangsan>X-Cron-Env: <USER=zhangsan>Message-Id: <[email]20191113020502.04DC131C6EDF@lokott.localdomain[/email]>Date: Wed, 13 Nov 2019 10:05:01 +0800 (CST)[/font][font=宋体]七、总结本文主要是对[/font][font=Calibri]Linux[/font][font=宋体]中进程和计划任务的管理的介绍和命令演示,包括静态查看([/font][font=Calibri]ps[/font][font=宋体])和动态查看([/font][font=Calibri]top[/font][font=宋体])进程命令,按条件查看([/font][font=Calibri]pgrep[/font][font=宋体])和以树型结构查看([/font][font=Calibri]pstree[/font][font=宋体]);其次是对进程控制的介绍,包括启动进程,调度进程([/font][font=Calibri]Ctrl+Z[/font][font=宋体]、[/font][font=Calibri]jobs[/font][font=宋体]、[/font][font=Calibri]fg[/font][font=宋体]、[/font][font=Calibri]bg[/font][font=宋体])以及终止进程的命令([/font][font=Calibri]kill[/font][font=宋体]、[/font][font=Calibri]killall[/font][font=宋体]、[/font][font=Calibri]pkill[/font][font=宋体]);最后是对计划任务设置命令的介绍,即[/font][font=Calibri]at[/font][font=宋体]和[/font][font=Calibri]crontab[/font][font=宋体]命令,其中注意[/font][font=Calibri]at[/font][font=宋体]是一次性有效,且需要在当前时间([/font][font=Calibri]date[/font][font=宋体]命令查看当前时间)之后,有年份设置,而[/font][font=Calibri]crontab[/font][font=宋体]命令是计划性周期命令,没有年份的设置[/font][font=宋体][font=宋体],[b][size=6]分支组网[/size][/b]电话[/font][font=Calibri][size=10.5pt]400-028-9798[/size][/font][font=宋体][size=10.5pt]。[/size][/font][/font]
[font=宋体]最后感谢阅读![/font][/align][/align]

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表