|
[align=center]
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]
|
|