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学习总结(二十七)任务计划,系统服务管理的主要内容,如果未能解决你的问题,请参考以下文章