10.23-10.27 corn, chkconfig, systemd, unit, target

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10.23-10.27 corn, chkconfig, systemd, unit, target相关的知识,希望对你有一定的参考价值。

八周一次课(3月26日)
10.23 linux任务计划cron
10.24 chkconfig工具
10.25 systemd管理服务
10.26 unit介绍
10.27 target介绍

扩展
1. anacron  技术分享图片http://blog.csdn.net/strikers1982/article/details/4787226
2. xinetd服(默认机器没有安装这个服务,需要yum install xinetd安装)   技术分享图片http://blog.sina.com.cn/s/blog_465bbe6b010000vi.html
3. systemd自定义启动脚本  技术分享图片http://www.jb51.net/article/100457.htm


10.23 linux任务计划cron


介绍

技术分享图片任务计划,在linux上是必不可少的。


任务计划的配置文件

[[email protected] ~]# cat /etc/crontab 

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root


# For details see man 4 crontabs


# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name  command to be executed



MAILTO=root 发送邮给指定root用户

SHELL=/bin/bash 使用的shell

PATH=/sbin:/bin:/usr/sbin:/usr/bin 环境变量,使用的命令路径


日期

***** 从左到右:

分钟

月(可以英文简写,jan,feb,mar,apr)

周几(0-6,0和7表示星期日,可以英文简写sun,mon,tue,wed,thu,fri,sat)

用户(不写用户名表示root)

最后一行是命令


格式演示

进入任务计划配置文件命令#crontab -e,这操作跟vim用法一样,只是换了方式来打开配置文件,但是不能直接用vi/vim来修改配置文件。

[[email protected] ~]#  crontab -e


演示示例,凌晨3点去执行任务(执行命令,在日期后面放上即可)。

任务内容为,执行脚本/bin/bash 脚本名字/usr/local/sbin123.sh 

指定输出日志,正确输出到从定向文件/tmp/123.log,错误的输出定义到/tmp/123.log 如果每天都需要操作记录,利用来追加>>

以下参数:

0 3 * * *  /bin/bash /usr/local/sbin/123.sh >>/tmp/123.log 2>>/tmp/123.log


范围用法,

分范围0-59,时范围0-23,日范围1-31,月范围1-12,周1-7

双月(能整除2的月份)的1-10号每周2周5的3点执行

0 3 1-10 */2 2,5  /bin/bash /usr/local/sbin/123.sh >>/tmp/123.log 2>>/tmp/123.log


启动crontab服务

[[email protected] ~]# systemctl start crond

[[email protected] ~]# ps ux |grep cron

root       567  0.0  0.1 126236  1616 ?        Ss   16:29   0:00 /usr/sbin/crond -n

root      2211  0.0  0.0 123208   780 ?        Ss   17:01   0:00 /usr/sbin/anacron -s

root      2354  0.0  0.0 112676   980 pts/0    S+   17:19   0:00 grep --color=auto cron


此命令也可以查看crond服务状态

[[email protected] ~]# systemctl status crond

技术分享图片

要保证服务是启动状态,

否则会无效。


注意

如果发现计划不生效

有可能是没有用绝对路径,

键入绝对路径(最稳),也可以在脚本里添加变量,然后后面参数敲入相应参数即可。

每写一个任务计划,都要追加日志(正确错误输出,)。


#crontab -l 列出计划任务

例如,

#crontab -e 添加以下计划任务

1 10 * 2 * /usr/bin/find /tmp/ -type f -mtime +100 |xargs rm -f

[[email protected] ~]# crontab -l

1 10 * 2 * /usr/bin/find /tmp/ -type f -mtime +100 |xargs rm -f

crontab -l可以查看计划任务。


crontab的文件路径/cron/下的文件,就是对应的用户,例如root就以root命名文件。

#cat /var/spool/cron/root 


crontab 

-l 列出任务计划

-e 编辑任务计划

-r 删除任务计划

-u 指定用户



10.24 chkconfig工具


Linux系统服务管理-chkconfig


技术分享图片

chkconfig是一种服务。

chkconfig是centos7以前使用的版本。

sysv centos7以前的服务管理基制。


systmd centos7的服务管理基制。ps进程排第一,init在centos6进程排第一。


chkconfig命令


[[email protected] ~]# chkconfig --list


注:该输出结果只显示 SysV 服务,并不包含

原生 systemd 服务。SysV 配置数据

可能被原生 systemd 配置覆盖。 


      要列出 systemd 服务,请执行 'systemctl list-unit-files'。

      查看在具体 target 启用的服务请执行

      'systemctl list-dependencies [target]'。


netconsole     0:关 1:关 2:关 3:关 4:关 5:关 6:关

network         0:关 1:关 2:开 3:开 4:开 5:开 6:关

chkconfig在centos7下面只剩下这2个服务。

chkconfig服务脚本的目录,mysql以后也会用到此脚本

[[email protected] ~]# ls /etc/init.d/

functions  netconsole  network  README


更改network服务状态,例如off它们

[[email protected] ~]# chkconfig network off

[[email protected] ~]# chkconfig --list


注:该输出结果只显示 SysV 服务,并不包含

原生 systemd 服务。SysV 配置数据

可能被原生 systemd 配置覆盖。 


      要列出 systemd 服务,请执行 'systemctl list-unit-files'。

      查看在具体 target 启用的服务请执行

      'systemctl list-dependencies [target]'。


netconsole     0:关 1:关 2:关 3:关 4:关 5:关 6:关

network         0:关 1:关 2:关 3:关 4:关 5:关 6:关


再次开启利用on

[[email protected] ~]# chkconfig network on

[[email protected] ~]# chkconfig --list


注:该输出结果只显示 SysV 服务,并不包含

原生 systemd 服务。SysV 配置数据

可能被原生 systemd 配置覆盖。 


      要列出 systemd 服务,请执行 'systemctl list-unit-files'。

      查看在具体 target 启用的服务请执行

      'systemctl list-dependencies [target]'。


netconsole     0:关 1:关 2:关 3:关 4:关 5:关 6:关

network         0:关 1:关 2:开 3:开 4:开 5:开 6:关


此处数字0-6 是一个运行级别 一共7个级别

0表示关机 

1单用户 centos6 及之前的系统版本实用,如果定位至1级别,开机就会自动进入单用户模式。

2多用户模式,不带图形 2比3少了一个nfs服务

3多用户模式,不带图形

4保留级别

5多用户,带图形

6重启 如果定位6级别,启动就会重启。


更改inittab文件,可以更改运行级别。

#vi /etc/inittab

技术分享图片

指定某个级别关闭或开启,

[[email protected] ~]# chkconfig --level 3 network off

[[email protected] ~]# chkconfig --list


注:该输出结果只显示 SysV 服务,并不包含

原生 systemd 服务。SysV 配置数据

可能被原生 systemd 配置覆盖。 


      要列出 systemd 服务,请执行 'systemctl list-unit-files'。

      查看在具体 target 启用的服务请执行

      'systemctl list-dependencies [target]'。


netconsole     0:关 1:关 2:关 3:关 4:关 5:关 6:关

network         0:关 1:关 2:开 3:关 4:开 5:开 6:关


如果需要几个级别一起开启或者关闭,可以同一条命令连着级别来写,例如格式:

# chkconfig --level 345 network on 此处345 on 表示运行级别的345都开启

[[email protected] ~]# chkconfig --level 345 network on

[[email protected] ~]# chkconfig --list


注:该输出结果只显示 SysV 服务,并不包含

原生 systemd 服务。SysV 配置数据

可能被原生 systemd 配置覆盖。 


      要列出 systemd 服务,请执行 'systemctl list-unit-files'。

      查看在具体 target 启用的服务请执行

      'systemctl list-dependencies [target]'。


netconsole     0:关 1:关 2:关 3:关 4:关 5:关 6:关

network         0:关 1:关 2:开 3:开 4:开 5:开 6:关


 

把脚本加入到服务列表

 chkconfig --add 服务

示例:

[[email protected] ~]# cd /etc/init.d/

[[email protected] init.d]# ls

functions  netconsole  network  README

[[email protected] init.d]# cp network 123

[[email protected] init.d]# ls

123  functions  netconsole  network  README

[[email protected] init.d]# chkconfig --add 123

[[email protected] init.d]# chkconfig --list


123             0:关 1:关 2:开 3:开 4:开 5:开 6:关

netconsole     0:关 1:关 2:关 3:关 4:关 5:关 6:关

network         0:关 1:关 2:开 3:开 4:开 5:开 6:关



文件名无条件要求,但是文件内容有要求,具体参考# vi network

技术分享图片

shell脚本,

2345启动顺序, 

运行级别启动顺序第十位10位启动 

第90位关闭

描述


删除123服务

 chkconfig --del 123



10.25 systemd管理服务


技术分享图片

systemd是centos7服务管理机制


列出所有service,以及描述

#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





10.26 unit介绍


Linux系统服务管理-systemd


 

ls /usr/lib/systemd/system //系统所有unit,分为以下类型

技术分享图片

 service 系统服务 



 target 多个unit组成的组

单用户,emygrcym model,centos6 7个运行级别。centos7有类似的级别

[[email protected] system]# cd /usr/lib/systemd/system

[[email protected] system]# ls -l runlevel*

lrwxrwxrwx. 1 root root 15 3月   8 05:05 runlevel0.target -> poweroff.target

lrwxrwxrwx. 1 root root 13 3月   8 05:05 runlevel1.target -> rescue.target

lrwxrwxrwx. 1 root root 17 3月   8 05:05 runlevel2.target -> multi-user.target

lrwxrwxrwx. 1 root root 17 3月   8 05:05 runlevel3.target -> multi-user.target

lrwxrwxrwx. 1 root root 17 3月   8 05:05 runlevel4.target -> multi-user.target

lrwxrwxrwx. 1 root root 16 3月   8 05:05 runlevel5.target -> graphical.target

lrwxrwxrwx. 1 root root 13 3月   8 05:05 runlevel6.target -> reboot.target

上面  runlevel0.target -> poweroff.target中的runlevel10.target是软链接,真正的文件是poweroff.targt

target是由多个unit组成的一个组,而unit又由多个services组成的组。


不用深究以下几点

 device 硬件设备

 mount 文件系统挂载点

 automount 自动挂载点

 path 文件或路径

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


 slice 进程组

 snapshot systemd快照

 socket 进程间通信套接字

 swap  swap文件

 timer 定时器


system的服务

#ls /usr/lib/systemd/system 

技术分享图片


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

不加--all的话active列会显示全部active和failed(个别)

技术分享图片


 systemctl is-active crond.service 查看某个服务是否为active

[[email protected] system]#  systemctl is-active crond.service

active



10.27 target介绍

介绍 

技术分享图片

系统为了方便管理用target来管理unit


显示系统所有的target

#systemctl list-unit-files --type=target

技术分享图片

查看指定target下面有哪些unit

#systemctl list-dependencies multi-user.target 

技术分享图片

大部分都是.service


查看系统默认的target

#systemctl get-default 

[[email protected] system]# systemctl get-default

multi-user.target


设定默认运行级别。

设定开机运行级别,相当于修改chkconfing的默认开机运行级别。

#systemctl set-default multi-user.target

[[email protected] system]# systemctl set-default multi-user.target

Removed symlink /etc/systemd/system/default.target.

Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.



 一个service属于一种类型的unit



 多个unit组成了一个target



 一个target里面包含了多个service



 cat /usr/lib/systemd/system/sshd.service //看[install]部分


总结:

系统由多种units组成的,unit是由target去管理,也就是说target由很多unit组成的。


以上是关于10.23-10.27 corn, chkconfig, systemd, unit, target的主要内容,如果未能解决你的问题,请参考以下文章

linux日常运维(crond,systemd,chkconfing,unit,target)

Linux20180511八周一次课cron chkconf systemd unit target

Linux20180511八周一次课cron chkconf systemd unit target

Linux20180511八周一次课cron chkconf systemd unit target

Linux20180511八周一次课cron chkconf systemd unit target

Linux20180511八周一次课cron chkconf systemd unit target