文档章节

cron/chkconfig/systemd/unit/target

蛋黄_Yolks
 蛋黄_Yolks
发布于 07/17 20:16
字数 1388
阅读 8
收藏 0

linux任务计划 : cron工具

任务计划在运维工作中用到的比较多,大部分系统管理工作都是通过定期自动执行某个脚本来完成。

查看linux中任务计划的配置文件: /etc/crontab

[root@yolks-001 ~]# 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

上面配置文件中提示:从左到右表示的参数依次为:**分(0 - 59)、时(0-23)、日(1-31)、月(1-12)、周几(0-6)**和要定时执行的命令。

编写一个任务计划,使用 crontab -e 选项来操作:

crontab -e

常用选项:

  • -u:表示指定某个用户,不加-u选项则默认当前用户。
  • -e:表示制定计划任务。
  • -l:表示列出计划任务,对应的文件在 /var/spool/cron/root
  • -r:表示删除计划任务。

在新打开的文件中添加定时任务,如下面代码:

#每天3点执行的任务,并且将结果输出日志
0 3 * * * /bin/bash /usr/local/sbin/123.sh >>/tmp/cron_run.log 2>>/tmp/cron_error.log

编写好后保存并退出,执行以下命令开启该任务计划

systemctl start crond

查看进程判断定时任务是否执行

[root@yolks-001 ~]# ps aux |grep cron
root        892  0.0  0.0 126232  1608 ?        Ss   22:13   0:00 /usr/sbin/crond -n
root       1760  0.0  0.0 112676   984 pts/0    R+   22:56   0:00 grep --color=auto cron

通过命令查看cron定时任务状态

通过命令停止任务计划

systemctl stop crond

Linux系统服务管理 : chkconfig

在Centos 6上的服务管理工具为chkconfig工具,Linux系统所有预设的服务都已可以通过/etc/init.d/目录得到。

[root@yolks-001 ~]# ls /etc/init.d  #列出Linux系统预设服务
functions  netconsole  network  README

只有屈指可数的几个文件是因为Centos 7已经不再延续Centos 6版本的服务管理方案,但是我们依然可以继续使用chkconfig这个命令。

chkconfig --list :列出所有的服务及其每个级别的开启状态

图中我们可以看到执行命令后系统所提示的内容,说明内容并没有包含Centos 7原生的systemd服务,而仅仅列出了SysV服务,也就是说Centos 7之前的版本采用的服务都是SysV

上图数字紧跟的开关中数字代表的是系统启动级别(现在的Centos 7已经不再严格区分级别的概念),运行级别0、1和6倍系统保留。其中0为关机1为单用户模式6为重启。一般都是用2、3、4、5级别,2表示无NFS支持的多用户模式3表示完全多用户模式(也是最常用的级别),4保留给用户自定义5表示图形登录方式centos6对应级别文件为:/etc/inittab

更改指定级别下的状态

[root@yolks-001 ~]# chkconfig --level 3 network off

批量更改指定级别状态

[root@yolks-001 ~]# chkconfig --level 345 network off

添加指定服务

[root@yolks-001 init.d]# chkconfig --add 123

移除指定的任务

[root@yolks-001 init.d]# chkconfig --del 123

systemd管理服务

使用systemd以下命令列出系统所有的服务

systemctl list-units --all --type=service

常用选项及命令:

  • systemctl enable crond.service //让某个服务开启(.service可以省略)
  • systemctl disable crond //不让开机启动
  • systemctl status crond //查看服务状态
  • systemctl start crond //启动某个服务
  • systemctl stop crond //停止某个服务
  • systemctl restart crond //重启某个服务
  • systemctl is-enable crond //查看某个服务是否开机启动

unit介绍

列出系统所有unit

[root@yolks-001 ~]# ls /usr/lib/systemd/system/

这个路径下有很多文件,这里简单列出一小部分,这些文件有多种类型,不同类型的文件都为一个unit,具体类型如下所示:

  • sercive:系统服务
  • target:多个unit组成的组
  • device:硬件设备
  • mount:文件系统挂载点
  • automount:自动挂载点
  • path:文件或路径

unit相关的命令

  • systemctl list-units //列出正在运行(active)的unit
  • systemctl list-units --all //列出所有的unit(包括失败的、inactive的)
  • systemctl list-units --all --state=inactive //列出所有inactive的unit
  • systemctl list-units --all --type=service //列出所有状态的service
  • systemctl list-units --type=service //列出状态的active的service
  • systemctl is-active crond.service //查看某个unit是否active
  • systemctl is-enabled crond.service //查看某个unit是否enabled

target

组成unit的一部分

查看系统中所有的target

systemctl list-unit-files --type=target

查看指定target中包含的service

systemctl list-dependencies halt.target

查看默认的target

[root@yolks-001 system]# systemctl get-default
multi-user.target

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

[root@yolks-001 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.
[root@yolks-001 system]# ls -l /etc/systemd/system/default.target
lrwxrwxrwx 1 root root 41 7月  17 20:04 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target

一个service属于一种类型的unit,多个unit组成一个target,一个target里面包含多个service及target。

拓展

对anacron的理解

使用xinetd管理网络应用服务

systemd添加自定义系统服务设置自定义开机启动的方法

© 著作权归作者所有

蛋黄_Yolks
粉丝 8
博文 100
码字总数 112269
作品 0
通州
私信 提问
cron-chkconfig-systemd-unit-target

任务计划cron: /etc/crontab #任务计划配置文件 格式: 分(0-59) 时(0-23) 日(1-31) 月(1-12) 周(0-6or1-7) 用户 命令 /var/spool/cron/[username] #各个用户配置的任务历史 配置...

ZHENG-JY
07/17
0
0
cron计划任务、chkconfig工具、systemd管理服务、unit、target介绍

1. linux任务计划cron linux的大部分系统管理工作都是通过定期自动执行某个脚本来完成的,那么如何定期执行某个脚本呢?这就要借助linux的cron功能了,这部分的内容很重要,请牢记! 命令cro...

网虫变网工
06/26
0
0
linux系统的任务计划、服务管理

linux任务计划cron 在linux下,有时候要在我们不在的时候执行一项命令,或启动一个脚本,可以使用任务计划cron功能。 任务计划要用crontab命令完成 选项: -u 指定某个用户,不加-u表示当前用...

黄昏残影
07/17
0
0
Linux设置日期时间,任务计划cron,chkconfig,systemd

任务计划cron 当我们需要在凌晨执行一条命令或运行一个脚本的时候,我们可能不会守在电脑旁,等时间到了去操作,经常我们会使用任务计划cron来实现。 设置系统时间 而使用任务计划往往会用到...

李超小牛子
07/28
0
0
Day 34 linux任务计划cron

linux任务计划cron 介绍 大部分系统工作都是通过定期执行脚本来执行,这就要借助linux 的cron功能了 crontab命令 linux的计划功能的操作都是通过crontab命令来完成的 选项 -u:表示指定某个用...

杉下
2017/12/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nignx的部署安装和反向代理

3、安装Nginx #yum update 更新一些库和必要的支持,完了之后去下载一个nginx的最新版,如今我责编的版本是1.7.7: #wget http://nginx.org/download/nginx-1.13.6.tar.gz 解压缩 #tar -zvxf n...

wangxujun59
26分钟前
2
0
将博客搬至CSDN

搬家

JackChenzp
30分钟前
2
0
lamba表达式

Java 8 lambda表达式示例 我个人对Java 8发布非常激动,尤其是lambda表达式和流API。越来越多的了解它们,我能写出更干净的代码。虽然一开始并不是这样。第一次看到用lambda表达式写出来的J...

os1cheng
32分钟前
2
0
jenkins: Opening Robot Framework log failed

6down vote Answer is explained at Jenkins issue tracking system: https://issues.jenkins-ci.org/browse/JENKINS-32118 For resolve your problem you must : Connect on your jenkins u......

关上越
40分钟前
1
0
CentOS7 ab压力测试安装与解释

原 CentOS7 ab压力测试安装与解释 2017年11月10日 18:43:25 moTzxx 阅读数:4889更多 个人分类: Centos7 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u0...

linjin200
43分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部