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

简介:

10.23 linux任务计划cron

wKioL1nlyRjzu4V_AAoUnM-5_jA552.png


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

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

wKiom1nly9HDNKagAAfuJLaHozU578.png

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


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

wKioL1nlyRyRIcEyAAK--ZkGXmY048.png

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


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

wKiom1nly9PTKlVNAAJfjUsVvfY579.png

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

 

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

wKioL1nlyR7Dvx5pAAD8x-9bnCk418.png


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

wKioL1nlyR7iAyeWAAJfjeoJtRU527.png


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

wKiom1nly9bxJ93CAAT7dyxp06I163.png


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

 

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

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

 

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

wKioL1nlySCBPeA6AAFHHsJqYgM535.png

wKiom1nly9fCp6oZAALfkrbw2OE321.png


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

wKiom1nly9nyIBB5AAK97Gx9r_I113.png

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

 

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

wKioL1nlySORoHFlAAFjjPyg56s146.png


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

wKioL1nlySSzy4hOAAE1e2vOs40386.png





10.24 chkconfig工具

wKiom1nly97DVO60AAgZfWzc5ko696.png


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

 

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

wKioL1nlySqQYYMNAAQZ9M3FJo0315.png

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

 

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

wKiom1nly-CiXasJAAE9P_-0nl0333.png


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

wKioL1nlySzAKvc2AARfVK38cUw336.png


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

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


chkconfig --level 345 network off 命令可以关闭345级别:

wKioL1nlyTLjFHHKAAScEJpuR5M990.png


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

wKiom1nly-qDNAuxAASkxUUXO5Q332.png


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

wKioL1nlyTigRxcYAAkdteZ48NE875.png


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

wKioL1nlyUDRTqRsABD6Id_KU3Q924.png


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

wKiom1nly_jQdcLpAAR5W1MEU9s533.png





10.25 systemd管理服务

wKioL1nlyUijEkhMAAqswwsXvzE614.png

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

wKiom1nlzASh9lhmAA145CcHJ3U557.png


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

wKiom1nlzAiRE4OLAAmXKM5qY-8391.png

按空格键可以往下翻页。



如果不加--all选项的话,就不会列出inactiveservice

wKioL1nlyVeB10zUAAoQmzKOknA366.png


让服务开机启动

wKiom1nlzA2SXlqiAAFHIuewByc545.png


禁止服务开机启动:

wKioL1nlyZ2Dy0gcAAIAIcW90Xw623.png


查看服务状态:

wKiom1nlzFWQ_lO-AAUM1cp7m8s238.png


停止服务:

wKioL1nlyZ_g2bw_AADpv-5plFQ477.png


启动服务:

wKiom1nlzFWi1V6ZAAEE0Cwv40o996.png


重启服务:

wKioL1nlyaDBe7heAAE5w_Exn1g116.png


检查服务是否开机启动:

wKioL1nlyaGiOkxQAAFmOfgiiWw268.png


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

wKiom1nlzFfyLEvXAAGyGB8LkPU064.png

wKiom1nlzFfjez0rAAEvcAwZ_Og448.png


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

wKioL1nlyaOSF4v8AALqXiIFzbk903.png




10.26 unit介绍

wKioL1nlyajgmNrjAAsDdaGL2fw754.png


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

wKiom1nlzGLxCdClAAkVDLExwmE731.png


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

wKioL1nlya6ST14UAARwsi7R2eM315.png



wKiom1nlzGXSh_G5AAUkgRpHPuc563.png


列出正在运行的unit

wKiom1nlzGmwJq98AAgIK7qtfK8429.png


列出所有,包括失败的或者inactiveunit

wKioL1nlybfhqMcXAAf7xqJALqs082.png


列出inactiveunit

wKioL1nlybzwEAu0AAtRj-1DU74109.png


列出状态为activeservice

wKiom1nlzHehyom8AAoh7Qv8Om0838.png


查看某个服务是否为activeinactive

wKioL1nlycKDqOJQAAGiw_P35rc654.png


查看某个服务是否为enabledisable

wKiom1nlzHiDx3q1AAFmZfTNPgc646.png






10.27 target介绍

wKioL1nlycWh9yUgAAdsCN2mL-Y901.png

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

  列出系统里所有的target

wKiom1nlzIPT4q-aAA-fsG82-hQ594.png

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

wKiom1nlzIvzNa1bAA9ib0TPBPg459.png


查看系统默认的target

wKioL1nlydai3s6FAAFwsIHzmgE562.png

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



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

wKiom1nlzIzwBnSsAAK2UF09cz8832.png


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

wKiom1nlzJDyWQlGAAlwJNndtR0973.png



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



本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1973407,如需转载请自行联系原作者

相关文章
|
2月前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
47 5
linux系统服务二!
|
2月前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
57 3
linux系统服务!!!
|
2月前
|
监控 Unix Linux
|
2月前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
349 3
|
2月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
139 3
|
3月前
|
Ubuntu Linux 网络安全
Linux中服务管理问题
【10月更文挑战第4天】
33 2
|
Linux
如何查找 Linux 系统`cron` 或 `crontab` 日志?
如何查找 Linux 系统`cron` 或 `crontab` 日志?
810 0
|
Linux
Linux的cron和crontab
一 cron crond位于/etc/rc.d/init.d/crond 或 /etc/init.d 或 /etc/rc.d /rc5.d/S90crond,最总引用/var/lock/subsys/crond。
1024 0
|
Linux Ubuntu
Linux cron crontab用法(转载)
linux定时执行脚本 阅读目录 1. cron服务【Ubuntu环境】 2. crontab用法 3. 编辑crontab文件 4. 流程举例 5. 几个例子 Linux中,周期执行的任务一般由cron这个守护进程来处理。
1009 0
|
2月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
138 8