linux系统的任务计划、服务管理

原创
2018/07/17 23:51
阅读数 100

 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

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
9 收藏
0
分享
返回顶部
顶部