前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >cron,chkconfig工具,systemd管理服务,unit介绍,target介绍

cron,chkconfig工具,systemd管理服务,unit介绍,target介绍

作者头像
端碗吹水
发布2020-09-23 10:08:29
5990
发布2020-09-23 10:08:29
举报

笔记内容:

l 10.23 linux任务计划cron

l 10.24 chkconfig工具

l 10.25 systemd管理服务

l 10.26 unit介绍

l 10.27 target介绍

笔记时间:2017.9.1

10.23 linux任务计划cron

wKioL1nlyRjzu4V_AAoUnM-5_jA552.png
wKioL1nlyRjzu4V_AAoUnM-5_jA552.png

在Linux系统当中任务计划是必不可少的,因为有时候可能需要凌晨的时候去做一些操作,例如要执行shell脚本、备份文件、执行某个命令等等。我们需要设定一个时间去执行这些操作,Windows因为是作为个人电脑系统居多,所以任务计划在Windows中不怎么常见。

  /etc/crontab是任务计划的配置文件:

wKiom1nly9HDNKagAAfuJLaHozU578.png
wKiom1nly9HDNKagAAfuJLaHozU578.png

每个* 表一位,分别是分、时、日、月、周,如果不指定用户的话,默认是root。

crontab -e命令可以进入到crontab的配置文件当中,用法跟vim是一样的:

wKioL1nlyRyRIcEyAAK--ZkGXmY048.png
wKioL1nlyRyRIcEyAAK--ZkGXmY048.png

  *写在分上表示每一分钟都执行,写在时上表示每一小时都执行,写在天上表示这个月的每一天都执行,写月上表示每一个月都执行,写周上表示每一个周都执行,* 写在日月周的位上表示每天都执行。

如果你想指定一个日期范围可以这么写:

wKiom1nly9PTKlVNAAJfjUsVvfY579.png
wKiom1nly9PTKlVNAAJfjUsVvfY579.png

1-10是指定一个月的天数范围,*/2表示用月份除以二,也就是指定为偶数的月份,2,3这个月的表示第2和第3周。

想要使用crontab 任务计划的话就需要启动crond服务:

wKioL1nlyR7Dvx5pAAD8x-9bnCk418.png
wKioL1nlyR7Dvx5pAAD8x-9bnCk418.png

想要确定服务是否启动起来了,可以使用ps aux|grep crond命令查看:

wKioL1nlyR7iAyeWAAJfjeoJtRU527.png
wKioL1nlyR7iAyeWAAJfjeoJtRU527.png

还可以使用systemctl status crond命令查看这个服务的状态:

wKiom1nly9bxJ93CAAT7dyxp06I163.png
wKiom1nly9bxJ93CAAT7dyxp06I163.png

systemctl stop crond命令可以停止crond服务。

如果你写了一个任务计划,并且服务运行正常,配置的格式也正确,但是到设定的时候却没有执行这个任务计划。这很有可能是你在任务计划的配置文件里写的命令不是绝对路径,如果不是绝对路径的话,就会去找PATH环境变量里是否有配置这条命令,PATH环境变量里没有的话,那么这个任务计划就会执行失败,因为找不到命令的执行路径,所以在任务计划的配置文件里写命令的时候,最好写这个命令的绝对路径。

建议在写任务计划的配置文件的时候将这个任务计划里的命令执行后的结果集重定向到一个日志文件里,错误的信息也是。这样的话才能够保证这个任务有据可查,当这个任务计划执行失败或出问题的话,就可以去查看日志文件,看看其中的错误信息是什么,这样有利于问题的解决。

crontab -l 命令可以看到有哪些任务计划:

wKioL1nlySCBPeA6AAFHHsJqYgM535.png
wKioL1nlySCBPeA6AAFHHsJqYgM535.png
wKiom1nly9fCp6oZAALfkrbw2OE321.png
wKiom1nly9fCp6oZAALfkrbw2OE321.png

crontab 文件在/var/spool/cron/目录下,文件会以设定任务计划的用户名定义:

wKiom1nly9nyIBB5AAK97Gx9r_I113.png
wKiom1nly9nyIBB5AAK97Gx9r_I113.png

所以要进行备份的话,就直接拷贝文件或cron目录即可。

crontab -r命令删除任务计划:

wKioL1nlySORoHFlAAFjjPyg56s146.png
wKioL1nlySORoHFlAAFjjPyg56s146.png

crontab -u 指定某个用户,例如我要查看root用户的任务计划:

wKioL1nlySSzy4hOAAE1e2vOs40386.png
wKioL1nlySSzy4hOAAE1e2vOs40386.png

10.24 chkconfig工具

wKiom1nly97DVO60AAgZfWzc5ko696.png
wKiom1nly97DVO60AAgZfWzc5ko696.png

我们都知道Linux系统里会有很多服务,例如刚刚使用的crond服务、mysql服务、Nginx服务、httpd服务等等,因为有这么多的服务,所以我们需要一个工具来管理,这个工具就是chkconfig。这是CentOS6之前版本所用的一个工具,在CentOS7里已经不使用了,但是为了向之前的版本兼容,所以在CentOS7任然可以使用。虽然这个工具已经不怎么用了,现在的发展趋势也可能会淘汰掉这个工具,但是因为现在还能够使用,所以我们需要了解一些相关的操作。

chkconfig --list 命令可以查看当前系统使用chkconfig 工具的服务:

wKioL1nlySqQYYMNAAQZ9M3FJo0315.png
wKioL1nlySqQYYMNAAQZ9M3FJo0315.png

从显示的结果可以看到,现在系统使用chkconfig 工具的服务只有两个,并且也提示了在CentOS7里的的服务模式是systemd。

这些使用chkconfig 工具的服务的脚本都在/etc/init.d/目录下:

wKiom1nly-CiXasJAAE9P_-0nl0333.png
wKiom1nly-CiXasJAAE9P_-0nl0333.png

chkconfig network off命令可以关闭network 服务:

wKioL1nlySzAKvc2AARfVK38cUw336.png
wKioL1nlySzAKvc2AARfVK38cUw336.png

chkconfig network on命令可以开启network 服务:

wKiom1nly-ShbfkxAARoCZyRGZw446.png
wKiom1nly-ShbfkxAARoCZyRGZw446.png

这里的级别表示的是CentOS6版本的系统运行级别,在CentOS7里是没有这个运行级别的:

0级别表示关机状态

1级别表示单用户模式

2级别表示是命令行的多用户模式,但是和3级别的区别是没有nfs服务

3级别表示是命令行的多用户模式

4级别表示保留状态,没什么卵用

5级别表示图形界面的多用户模式

6级别表示重启

chkconfig --level 3 network off 命令可以关闭network 服务的3级别:

wKiom1nly-ei6KZDAAS-wKW-2e0074.png
wKiom1nly-ei6KZDAAS-wKW-2e0074.png

chkconfig --level 345 network off 命令可以关闭3、4、5级别:

wKioL1nlyTLjFHHKAAScEJpuR5M990.png
wKioL1nlyTLjFHHKAAScEJpuR5M990.png

chkconfig --level 345 network on 命令则是相反可以开启3、4、5级别:

wKiom1nly-qDNAuxAASkxUUXO5Q332.png
wKiom1nly-qDNAuxAASkxUUXO5Q332.png

  chkconfig --add 可以添加服务,只能添加/etc/init.d/目录下的脚本,例如我直接把network脚本拷贝成另一个名称的文件,然后添加上去:

wKioL1nlyTigRxcYAAkdteZ48NE875.png
wKioL1nlyTigRxcYAAkdteZ48NE875.png

  这个脚本名称可以任意,但是文件内容的格式有要求,首先得是shell脚本,还得指定在chkconfig 里的运行级别,而且还得有description描述:

wKioL1nlyUDRTqRsABD6Id_KU3Q924.png
wKioL1nlyUDRTqRsABD6Id_KU3Q924.png

chkconfig --del 命令可以删除chkconfig 里的服务:

wKiom1nly_jQdcLpAAR5W1MEU9s533.png
wKiom1nly_jQdcLpAAR5W1MEU9s533.png

10.25 systemd管理服务

wKioL1nlyUijEkhMAAqswwsXvzE614.png
wKioL1nlyUijEkhMAAqswwsXvzE614.png

systemd是CentOS7的一个服务管理机制,systemctl list-unit-files命令可以查看所有的服务:

wKiom1nlzASh9lhmAA145CcHJ3U557.png
wKiom1nlzASh9lhmAA145CcHJ3U557.png

  systemctl list-units --all --type=service命令仅仅查看service,这样显得没那么乱:

wKiom1nlzAiRE4OLAAmXKM5qY-8391.png
wKiom1nlzAiRE4OLAAmXKM5qY-8391.png

按空格键可以往下翻页。

如果不加--all选项的话,就不会列出inactive的service:

wKioL1nlyVeB10zUAAoQmzKOknA366.png
wKioL1nlyVeB10zUAAoQmzKOknA366.png

让服务开机启动

wKiom1nlzA2SXlqiAAFHIuewByc545.png
wKiom1nlzA2SXlqiAAFHIuewByc545.png

禁止服务开机启动:

wKioL1nlyZ2Dy0gcAAIAIcW90Xw623.png
wKioL1nlyZ2Dy0gcAAIAIcW90Xw623.png

查看服务状态:

wKiom1nlzFWQ_lO-AAUM1cp7m8s238.png
wKiom1nlzFWQ_lO-AAUM1cp7m8s238.png

停止服务:

wKioL1nlyZ_g2bw_AADpv-5plFQ477.png
wKioL1nlyZ_g2bw_AADpv-5plFQ477.png

启动服务:

wKiom1nlzFWi1V6ZAAEE0Cwv40o996.png
wKiom1nlzFWi1V6ZAAEE0Cwv40o996.png

重启服务:

wKioL1nlyaDBe7heAAE5w_Exn1g116.png
wKioL1nlyaDBe7heAAE5w_Exn1g116.png

检查服务是否开机启动:

wKioL1nlyaGiOkxQAAFmOfgiiWw268.png
wKioL1nlyaGiOkxQAAFmOfgiiWw268.png

  设置服务开机启动时会有此服务配置文件路径的信息,这个路径是一个软链接,而这个配置文件的真正路径是/usr/lib/systemd/system/crond.service.:

wKiom1nlzFfyLEvXAAGyGB8LkPU064.png
wKiom1nlzFfyLEvXAAGyGB8LkPU064.png
wKiom1nlzFfjez0rAAEvcAwZ_Og448.png
wKiom1nlzFfjez0rAAEvcAwZ_Og448.png

如果是设置为禁止服务开机启动的话,也会有一个信息,这个信息是把那个软链接删除了的信息:

wKioL1nlyaOSF4v8AALqXiIFzbk903.png
wKioL1nlyaOSF4v8AALqXiIFzbk903.png

10.26 unit介绍

wKioL1nlyajgmNrjAAsDdaGL2fw754.png
wKioL1nlyajgmNrjAAsDdaGL2fw754.png

系统的所有unit都在/usr/lib/systemd/system/路径下:

wKiom1nlzGLxCdClAAkVDLExwmE731.png
wKiom1nlzGLxCdClAAkVDLExwmE731.png

  target是由多个unit、service组成的一个组,在CentOS7里也有类似于CentOS6的运行级别,不同级别的target对应着不同的级别的运行模式:

wKioL1nlya6ST14UAARwsi7R2eM315.png
wKioL1nlya6ST14UAARwsi7R2eM315.png
wKiom1nlzGXSh_G5AAUkgRpHPuc563.png
wKiom1nlzGXSh_G5AAUkgRpHPuc563.png

列出正在运行的unit:

wKiom1nlzGmwJq98AAgIK7qtfK8429.png
wKiom1nlzGmwJq98AAgIK7qtfK8429.png

列出所有,包括失败的或者inactive的unit:

wKioL1nlybfhqMcXAAf7xqJALqs082.png
wKioL1nlybfhqMcXAAf7xqJALqs082.png

列出inactive的unit:

wKioL1nlybzwEAu0AAtRj-1DU74109.png
wKioL1nlybzwEAu0AAtRj-1DU74109.png

列出状态为active的service:

wKiom1nlzHehyom8AAoh7Qv8Om0838.png
wKiom1nlzHehyom8AAoh7Qv8Om0838.png

查看某个服务是否为active或inactive:

wKioL1nlycKDqOJQAAGiw_P35rc654.png
wKioL1nlycKDqOJQAAGiw_P35rc654.png

查看某个服务是否为enable或disable:

wKiom1nlzHiDx3q1AAFmZfTNPgc646.png
wKiom1nlzHiDx3q1AAFmZfTNPgc646.png

10.27 target介绍

wKioL1nlycWh9yUgAAdsCN2mL-Y901.png
wKioL1nlycWh9yUgAAdsCN2mL-Y901.png

target是由多个unit、service组成的一个组,相当于unit、service的一个集合,但是target下也可以包含target。

  列出系统里所有的target:

wKiom1nlzIPT4q-aAA-fsG82-hQ594.png
wKiom1nlzIPT4q-aAA-fsG82-hQ594.png

查看指定target下面有哪些unit、servic,例如我要查看multi-user.target下面的unit、servic:

wKiom1nlzIvzNa1bAA9ib0TPBPg459.png
wKiom1nlzIvzNa1bAA9ib0TPBPg459.png

查看系统默认的target:

wKioL1nlydai3s6FAAFwsIHzmgE562.png
wKioL1nlydai3s6FAAFwsIHzmgE562.png

在CentOS7里可以通过修改target来改变系统的运行级别。

设置默认的target,会创建一个软链接:

wKiom1nlzIzwBnSsAAK2UF09cz8832.png
wKiom1nlzIzwBnSsAAK2UF09cz8832.png

  想要查看某个servic属于哪个target的话,cat那个service的文件内容看Install部分就知道了,例如我要查看sshd.service属于哪个target:

wKiom1nlzJDyWQlGAAlwJNndtR0973.png
wKiom1nlzJDyWQlGAAlwJNndtR0973.png

所以target就是由多个unit组成的,而unit又是由多个service组成的,所以target包含unit和service,而target下也可以包含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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-10-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 10.23 linux任务计划cron
  • 10.24 chkconfig工具
  • 10.25 systemd管理服务
  • 10.26 unit介绍
  • 10.27 target介绍
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档