linux任务计划cron
在linux下,有时候要在我们不在的时候执行一项命令,或启动一个脚本,可以使用任务计划cron功能。
任务计划要用crontab命令完成
选项: -u 指定某个用户,不加-u表示当前用户
-e 编写任务计划
-l 查看已经设定任务计划
-r 删除任务计划
编写的格式为: 分 时 日 月 周 具体命令
任务计划的配置文件 /etc/crontab
这里显示了分的范围是0-59, 时的范围,0-23,日的范,1-31, 月的范围1-12或者写英语月份的简写,周的范围0-6 (0代表星期天,也可以写7),如果不填某一项信息就用 ” * ” 代替。
使用命令crontab -e 就可以进入vim编辑器编写任务计划,
比如在6月5日10点01 分执行任务计划
写任务计划时要写绝对路径,
要使用命令 systemctl start crond 启动服务
chkconfig服务管理工具
chkconfig工具是CentOS 6以及以前版本使用的服务管理工具,CentOS 7 上还是可以使用使用chkconfig这个命令。
chkconfig --list 命令会列出所有的服务以及每个级别的开启状态,但它只显示SysV服务,而CentOS 7使用的是systemd服务。Linux系统所有预设的服务都在/etc/init.d/目录下的查看。
使用命令 chkconfig --list 可以列出服务的状态
列出的服务会有0-6级别,0,、1和6级别是系统保留,0作为shutdown动作,1 重启至单用户模式,6为重启。2、3、4、5几个级别一般作为linux系统的实现中,2表示无NFS支持的多用户模式,3 完全多用户模式, 4 保留给用户自定义,5 图形登录。
使用下面命令把network的 3 级别设定为关闭,--level 选项指定级别,后面跟服务名,在跟off或on 。
把network的3、4、5都关闭
不指定服务名,默认是针对2、3、4、 5来操作
指定某个服务加入到系统服务中chkconfig --add network
删除某个服务chkconfig --del network
systemd服务
systemd服务是CentOS 7使用的服务,它支持多个服务并发启动,而SysV只能一个个的启动。
使用systemd工具列出系统的所有服务
这些服务对应的启动脚本文件在 /usr/lib/systemd/system/ 目录下面。
常用的命令有:
systemctl enable crond.service //让服务开机启动(service可以省略) systemctl disable crond.service //不让服务开机启动 systemctl status crond.service //查看服务状态 systemctl start crond.service //启动服务 systemctl stop crond.service //停止服务 systemctl restart crond.service //重启服务 systemctl is-enabled crond //查看服务是否开机启动
unit介绍
在目录/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的unit systemctl list-units --all --state=inactive //列出inactive的unit systemctl list-units --all --type=service //列出所有状态为active的service systemctl list-units --type=service //列出状态为active的service systemctl is-active crond.service //查看某个服务是否active
target介绍
target类似于CntOS 6里的启动级别,是多个unit的组合,它支持多个target同时启动,
查看系统的所有target:
查看一个target包含的所有unit:
查看系统默认的target
设置默认的target
service、unit、target之间的联系:
一个service属于一种unit
多个unit一起组成一个target
一个target里面包含多个service,查看文件/usr/lib/sysemd/system/sshd.service 里面的[install]部分内容,他定义了该service属于哪个target