linux任务计划cron chkconfig工具 systemd管理服务 unit介绍 target介绍

1,命令crontab。

    linux任务计划功能的操作都是通过crontab命令来完成的,常用的选项有以下几个。

    -u:指定某个用户,不加-u则为当前用户。

    -e:制定计划任务。

    -l:列出计划任务。

    -r:删除计划任务。

    创建第一个任务计划。

    #crontab -e 命令来编写任务计划,相当于是用vim工具打开crontab的配置文件。

    root用户打开的就是/var/spool/cron/root,这个文件不能直接编辑,否则会出错。写入以下内容然后:wq保存。

    01 10 05 06 3 echo "ok" > /root/cron.log

    从左到右每个字段表示的含义分别为:分、时、日、月、周和命令行。上述表示的是在6月5日而且必须是星期三的这一天的10点01分执行命令:echo "ok" > /root/cron.log。

  查看已经设定的任务计划:

    # crontab -l
    01 10 05 06 3 echo "ok" > /root/cron.log

    删除任务计划:

    # crontab -r
    # crontab -l

    no crontab for root

2,chkconfig工具。

    CentOS 6上的服务管理工具为chkconfig,linux系统所有的预设服务都可以通过查看/etc/init.d目录得到,如下所示:

    

    只有很少的几个文件,因为CentOS 7不再延续6的服务管理方案了。但是我们依然可以继续使用chkconfig这个命令。系统的预设服务都可以通过这样的命令来实现:service 服务名 start|stop|restart。这里的服务名就是/etc/init.d/目录下的这些文件。启动crond除了可以使用命令service crond start外,还可以使用命令/etc/init.d/crond start。

     我们也可以使用命令chkconfig --list列出所有的服务以及每个级别的开启状态。

     

    在这里会看到一个提示,提示我们该命令输出的内容并没有包含CentOS 7的原生systemd服务,在这里仅仅列出SysV服务。这也是 /etc/init.d/目录下只有一两启动脚本的原因。早期的CentOS版本采用的服务管理都是SysV而7换成了systemd。

    这里的级别(数字0-6)为系统启动级别,运行级别0、1和6被系统保留。其中0作为shutdown动作,1为启动至单用户模式,6为重启。在一般的linux系统中一般都有2、3、4、5几个级别。2表示无NFS支持的多用户模式,3表示完全多用户模式,4保留给用户自定义,5表示图形等六方式。

    更改某级别下的开启状态。用--level 指定一个或多个级别,后面是服务名,然后是off或者on。

    

    --level后面还可以省略级别,默认是针对2、3、4、5操作的。

    

    chkconfig还有一个功能,就是可以把某个服务加入系统服务或者删除,即可以使用“chkconfig --add 服务名”或      者“chkconfig --del 服务名”这样的形式,并且可以在chkconfig --list的结果中查找到。这个功能常用于把自定义的启动脚本加入到本地系统服务当中。

                                                                                                                                          

3,systemd服务管理。

    CentOS 7 不再使用SysV而改为systemd了,这是因为systemd支持多个服务并发启动,而SysV只能一个一个的启动,显然systemd的服务启动会快很多。

    列出系统所有的服务。

    

    这些服务对应的启动脚本文件位置。里面有目录有文件,有的以.service为后缀,有的以.target为后缀,当然还有其他的格式。

    

常用的命令有:

   #systemctl enable 服务名:让某个服务开机开启。

   #systemctl  disable 服务名:不让开机启动。

   #systemctl  status 服务名:查看服务状态。

    #systemctl start 服务名:启动某个服务。

    #systemctl stop 服务名:停止某个服务。

    #systemctl restart 服务名:重启某个服务。

    #systemctl is-enable 服务名:查看某个服务是否开机启动。

4,概念unit。

    执行ls /usr/lib/systemd/system的时候,下面有很多文件,可以归为以下几类。

    service:系统服务。

    target:多个unit组成的组。

    device:硬件设备。

    mount:文件系统挂载点。

    automount:自动挂载点。

    path:文件或路径。

    scope:不是由systemd启动的外部进程。

    slice:进程组。

    snapshot:systemd快照。

    socket:进程间通信的套接字。

    swap:swap文件,

    timer:定时器。

    以为每种类型文件都为一个unit,正是这些unit才组成了系统的各个资源。unit的相关命令。

    # systemctl list-units  //列出正在运行的unit

    # systemctl list-units --all //列出所有的unit(包括失败的,inactive的)

    # systemctl list-units  --all --state=inactive//列出所有inactive的unit

    # systemctl list-units  --all --type=service //列出所有状态的unit

    # systemctl list-units --type=service  //列出状态为active的service

    # systemctl is-active crond.service  //查看某个unit是否active

5,概念target。

    target类似CentOS 6里面的启动级别,但是target支持多个同时启动。target其实是多个unit的组合,系统启动说白了就是启动多个unit,为了方便管理就用target来管理这些unit。

    查看系统所有的target。

    

    查看一个target包含的所有unit:

    

 关于target的几个命令:get-default是查看系统默认的target。set-default是设置默认的target。

    

运行级别和target的对比。       

SysV运行级别Systemd target备注
0poweroff.target关闭系统
1rescure.target单用户模式
2multiuser.target用户自定义级别通常识别为级别3
3multiuser.target多用户,无图形
4multiuser.target用户自定义级别通常识别为级别3
5graphical.target多用户,有图形,比级别3多一个图形
6reboot.target重启

service、unit、target之间的联系:  

   (1) 一个service属于一种unit。

   (2)多个unit一起组成了一个target。

   (3)一个target里面包含了多个service,可以查看文件/usr/lib/systemd/system/sshd.service里面[install]部分的内容,它就定义了该service属于哪一个target。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值