Linux学习总结(二十七)任务计划,系统服务管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习总结(二十七)任务计划,系统服务管理相关的知识,希望对你有一定的参考价值。

1 任务计划

说白了就是运行命令或者脚本的一个定时器,他可以让我们在休息时间自动给我们执行任相关任务。
来看下它的配置文件:cat /etc/crontab
技术分享图片
第一行定义了 shell环境
第二行定义 环境变量
第三行定义了发邮件给root用户,邮件保存路径为/var/spool/mail/root/
最后定义了任务内容的格式,从左到右依次为:
分 时 日 月 周 命令
分钟:0-59
小时:0-23
日期:1-31
月份:1-12
周:0-7 0,7都表示星期天
可以指定一个范围:比如1-5 周一到周五, 也可以单独指定:比如1,2可以表示每月1号和2号
* 表示所有时间, */2 可以表示偶数时间段
crontab -e 创建一个任务,此时相当于vi打开一个文本,里面的操作跟vi一致
-l 查看任务
-r 删除任务
-u 后面跟用户名,指定是哪个用户的计划任务,不指定默认root用户
任务创建完后,一定要确保任务计划服务启动。
systemctl start crond.service 启动任务计划服务
ps aux |grep crond 查看是否启动,查看是否有/usr/sbin/crond -n 这一进程
或者 systemctl status crond 查看,出现绿色字显示的 active(running)表示启动
任务放在了/var/spool/cron/username 下,username 指相应用户
备注:不管是计划任务,还是iptables规则,还是其他shell脚本尽量使用绝对路径,计划任务最好将命令执行结果反馈到日志,>> 2>> ,以便日后有据可查

2 chkconfig

linux 系统服务管理,类似于windos的开机启动管理。来熟悉下基本用法:

chkconfig --list //查看所有服务
chkconfig --level 345 network off  //345级别的network服务关闭
chkconfig --del network   //删除network服务
chkconfig --add network    //添加network服务

添加服务之前需要先将服务脚本放进 /etc/init.d/文件夹

3 systemd 管理

centos 7开始使用的系统服务管理机制
systemctl list-units --all --type=service //查看所有service服务
几个常用的服务相关的命令

 systemctl enable crond.service //让服务开机启动
 systemctl disable crond //不让开机启动
 systemctl status crond //查看状态
 systemctl stop crond //停止服务
 systemctl start crond //启动服务
 systemctl restart crond //重启服务
 systemctl is-enabled crond //检查服务是否开机启动

4 unit 和target

unit是一个守护进程的分装单元,多个unit组成了一个target
ls /usr/lib/systemd/system //系统所有unit,分为以下类型
service 系统服务
target 多个unit组成的组
device 硬件设备
mount 文件系统挂载点
automount 自动挂载点
path 文件或路径
scope 不是由systemd启动的外部进程
slice 进程组
snapshot systemd快照
socket 进程间通信套接字
swap swap文件
timer 定时器
unit相关的命令

 systemctl list-units //列出正在运行的unit
 systemctl list-units --all //列出所有,包括失败的或者inactive的
 systemctl list-units --all --state=inactive //列出inactive的unit
 systemctl list-units --type=service//列出状态为active的service
 systemctl is-active crond.service //查看某个服务是否为active

系统为了方便管理用target来管理unit

 systemctl list-unit-files --type=target
 systemctl list-dependencies multi-user.target //查看指定target下面有哪些unit
 systemctl get-default //查看系统默认的target
 systemctl set-default multi-user.target  //设置系统默认的target

unit target service 三者的关系:
一个service属于一种类型的unit
多个unit组成了一个target,
一个target里面包含了多个service
cat /usr/lib/systemd/system/sshd.service //看[install]部分,查看该
service属于哪一个target。

以上是关于Linux学习总结(二十七)任务计划,系统服务管理的主要内容,如果未能解决你的问题,请参考以下文章

Puppet cron资源介绍(二十七)

shell学习五十七天----linux任务管理,针对上一讲的总结和扩展

linux(十七) 详解计划任务管理

GUI学习之二十七——布局管理学习总结

Linux学习总结(二十四)系统管理3

十七linux系统的任务计划