进程管理的工具,包括一些监控io,监控网络的性能方面的工具
在执行进程的时候有两种:前台,后台
前台执行:占用终端资源(如果程序不结束,那么这个终端资源就没有办法给别的命令使用)
如何后台执行程序,可以在命令command+& ,就可以把之前前台默认运行的程序,放到后台,那么后台执行就不占用终端资源了
如ping就是前台执行,打其他命令是不能执行的
虽然结果还是可以在前台看到,但是已经可以敲命令了,命令再后台执行,不占用终端资源
分开敲不用认为是打断,只是显示的问题,但是ctrl+c不起作用,无法终止
可以用kill ,或者恢复到前台执行
jobs可以查看后台正在执行的命令
[1]是它的编号,因为后台的命令可能有好几个,所以要记住有几个
fg frontgroup 恢复到前台,后面跟上数字
就把2这个命令换到前台执行了
也可以把正在执行的命令切换到后台执行,ctrl+z,但是是停止了
bg +编号 backgroup 后台运行
后台运行的能否休眠,killall -19 ping
发19 信号休眠
从休眠继续后台运行
但是如果想要ctrl+c的时候让用户停不住
ctrl+c=2号信号
那就可以在写脚本的时候 ,捕捉到这个ctrl+c的信号,不让他执行,就是信号捕捉,
捕捉到信号后,按照自己的意愿执行
kill [%作业编号],也可以杀进程
后台执行
再另外开一个终端,用jobs查看后台运行的程序(只能在本终端上看,才能看到)
但是用ps pstree可以看到
jobs属于内部命令
虽然在后台执行但是依旧和终端相关
pkill 可以把终端所有命令杀掉
放到后台执行,网断了也就停止了,但是如果拷贝文件需要时间长,网断了不希望中断,可以用screen
保证断网程序能继续执行
开启一个会话,后台执行ping命令
断网
但程序还在运行
重新连接网络,继续执行screen -r
程序继续执行
退出screen
还有另外一种方法 nohup
杀掉ping命令
清理环境,重新用nohup执行
、
前面的命令只要有标准输出信息,默认把输出放到文件里,而且是不断追加的
接下来让其网络断开,
命令还在继续执行
原来的关系
现在变成systemd的子进程,换父进程了,就可以继续执行
在实际情况下,做一些备份一些时间比较久的情况,为了避免网断的情况,都要加nohup或者
screen的方式,这样就不会说网断了,影响你执行程序
用nohup网断了,想恢复到前台执行
fg,无论后台运行和后台休眠都可以切换
如何实现,多进程并行执行
同时执行
全部杀掉ping的进程
并行命令第一种方法,脚本里加&
另外一种 (相当于开了三个子进程),小括号+&
第三种方法,花括号+&
有些时候,有些命令一步一步进行效率是非常低的,可以并行执行增加效率
f1.sh代表一个命令或一个脚本
关于进程以及基本的任务管理,包括基本 的性能监控,
ps
pstree
pgrep
pkill
top
pidof 查看 进程编号
pmap 查看内存的映射关系
htop
uptime
vmstat
dstat
iostat
bg前后台切换
fg前后台切换(前台)
jobs
glances (服务端,客户端,远程查看主机情况)
iotop
kill
killall
nohup
nice
renice
watch
、
任务管理的内容(定点执行,周期执行)
一次性任务用at(一次性的,未来某个时间点执行)或者
batch(系统自行选择空闲时间去执行此处指定的任务)
需要安装at包
atq查询计划任务 atrm删除计划任务 batch执行一次空闲的计划任务
同时atd.service也是个服务(利用at进行计划任务,就一定要启动服务)
开启服务,确保处于running状态
6的命令跟7不一样
-V显示版本信息
可以更改配置文件,使系统时间更好同步
再生产中,时间是非常重要的,必须确保同步一致
同步的前提,这个配置文件生效前提是必须是服务器的与同步的相差不大,一分钟,如果相差大了,文件就不生效,所以先同步到相差不大的时间,修改文件,后期就自动更新
防火墙状态
第一步同步
确保这个服务开机启动
centos6的修改文件略有不同·
设置开机启动
时间同步是初始化系统必做的工作,时间不同步,很多应用都会有问题
时间同步
第一步ntpdate 172.20.0.1
第二步 centos7 修改 /etc/chrony.conf service 172.20.0.1 iburst
centos6 修改 /etc/ntp.conf
第三步 centos7 systemctl enable chronyd
1002 systemctl status chronyd
1003 systemctl start chronyd
centos6 vim /etc/ntp.conf
server 172.20.0.1 iburst
chkconfig ntpd on
service ntpd start
-c看作业1的具体内容是什么
计划任务放在了
放到文件里,就不用担心重启丢失
希望在未来的15分钟做某一件事
02pm + 3days (三天之后的下午两点)
noon中午,midnight午夜0点,teatime下午茶下午4点
-d删除计划任务
-f可以吧多个作业放到文件,只要用f调用就可以
at是个标准输入的,就可以用重定向
计划任务里带标准输出,不会像你希望的那样在当前终端显示出来,因为at任务毕竟在未来执行,有可能用户根本就没有登录,有输出也不会显示,就会以邮件方式发给你
这样就提示我们,写脚本时,注意这些垃圾邮件,尽可能在脚本里把这些标准输出取消 重定向到如/dev/null,
at有个小小的缺点,当at命令执行完毕以后(后面还一分钟执行),到底有没有执行,看不到明显的结果,
-m就强制给你发邮件,只要执行了,就给你发邮件
空邮件确实执行了
换一种方式创建计划任务
at -d =atrm
可以定义用户是否能执行计划任务
如果不希望王用户来操作at任务,就要设置黑名单白名单,默认只有黑名单)
白名单默认不存在,需要手动创建,
如果有了白名单,只有在白名单列出的用户才能执行计划任务
如果白名单不存在,那就看黑名单,存在黑名单里的人就不能执行计划任务,(不在黑名单的就能执行)
黑名单和白名单都删除,意味只有root才行(这就是系统为什么要有一个黑名单的原因,哪怕是黑名单是空的)
执行at三种方式,交互式,重定向,写到文件里
如何在脚本写at命令