10.23 linux任务计划cron
查看计划任务配置文件
# cat /etc/crontab
分 时 日 月 周
编辑计划任务
#crontab -e //用法和vim一样
*可用格式1-5表示范围1到5
*可用格式1,2,3表示1或者2或者3
*可用格式*/2表示被2整除的数字,比如小时,那就是每隔2小时
计划任务执行要保证服务是启动状态
启动任务
#systemctl start crond.service
检查任务是否启动
#ps aux |grep cron
或
# systemctl status crond
计划任务写了,却没有执行,
原因可能是命令不在cron的path里,又没有写绝对路径。所以编辑命令时尽量使用绝对路径
查看计划任务
# crontab -l //任务时刚才临时添加的
而计划任务保存位置在/var/spool/cron目录下,具体文件和用户名相同
所以,我们可以备份文件来计划任务
删除计划任务
#crontab -r
查看指定用户的计划任务
#crontab -u 用户名
10.24 chkconfig工具
chkconfig在centos7中已经被systemd取代了,为了兼容仍然可用该工具# chkconfig --list //目前仅剩2个服务
服务文件位置 /etc/init.d
改变服务状态
#chkconfig network off //关闭network服务
# chkconfig network on //打开网络服务
在centos6及之前我们也可以定义服务的运行级别
# vi /etc/inittab //centos7中不再使用
指定级别开启(或关闭)某个服务
# chkconfig --level 35 network on //在3和5级别打开network服务
增加一个新的服务
# cp /etc/init.d/network /etc/init.d/123 //要在init.d目录下,且服务是有固定格式的,这里复制network作为123的模板
#chkconfig --add 123 //增加123到服务列表
删除服务
# chkconfig --del 123
关于用户级别,centos6及以前版本,
0关机
1单用户
2没有nfs的命令行多用户
3有nfs的命令行多用户
4保留
5多用户图形
6重启
10.25 systemd管理服务
这是centos7的服务管理机制
查看所有的服务
# systemctl list-units --all --type=service //图片为部分内容
不加--all 未激活状态的服务就不列出来了
让服务开机启动(不启动)
# systemctl enable crond.service //开机启动
# systemctl disable crond.service //开机不启动
查看服务状态
# systemctl status crond.service //刚才只是关闭开机启动,所以服务仍是active
启动服务
# systemctl start crond.service
重启服务
# systemctl restart crond.service
检查服务是否开机启动
# systemctl is-enabled crond.service
关于设置服务开机启动其实是创建一个软链接文件到目标服务(比如/usr/lib/systemd/system/crond.service)
10.26 unit介绍
列出系统所有unit分为以下类型:
target 多个unit组成的组
device 硬件设备
mount 文件系统挂载点
automount 自动挂载点
path 文件或路径
scope 不是由systemd启动的外部进程
slice 进程组
snapshot systemd快照
socket 进程间通信套接字
swap swap文件
timer 定时器
unit相关命令
列出正在运行的unit
# systemctl list-unit
列出所有unit,包含失败的或者inactive的
# systemctl list-units --all
列出指定状态的unit
# systemctl list-units --all --state inactive
查看某个服务是否active
# systemctl is-active crond.service
# ls -l runlevel*
10.27 target介绍
系统为了方便管理用target来管理unit列出所有的target
# systemctl list-unit-files --all --type=target
查看指定target下有哪些unit
# systemctl list-dependencies multi-user.target
查看系统默认的target
# systemctl get-default
设置默认的target
# systemctl set-default multi-user.target
查看service属于哪个target
# cat /usr/lib/systemd/system/sshd.service //查看[install]部分
一个service属于一种类型的unit
多个unit组成了一个target
一个target里面包含了多个service