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

目录

一、linux任务计划cron
二、 chkconfig工具
三、 systemd管理服务
四、 unit介绍
五、 target介绍

一、linux任务计划cron

Linux任务计划功能的操作都是通过crontab命令来完成的。首先,查看一下任务计划的配置文件:

[root@minglinux-01 ~]# man crontab
[root@minglinux-01 ~]# 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

crontab命令的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段。从左到右依次为:分、时、日、月、周和命令行。

在以上各个字段中,还可以使用以下特殊字符:

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

crontab常用的选项有以下:

-u:表示指定某个用户,不加-u选项则为当前用户。
-e:表示制定计划任务。
-l:表示列出计划任务。
-r:表示删除计划任务。

  • crontab -e 创建任务计划

命令crontab -e实际上是打开了/var/spool/cron/username文件(如果用户是root,则打开的是/var/spool/cron/root)。

[root@minglinux-01 ~]# crontab -e
no crontab for root - using an empty one

然后我们写入任务计划内容,表示在10月30日星期二的22点08分执行echo "ok" > /root/cron.log命令

08 22 30 10 2 echo "ok" > /root/cron.log

任务计划已完成:

[root@minglinux-01 ~]# date
2018年 10月 30日 星期二 22:08:55 CST
[root@minglinux-01 ~]# cat /root/cron.log
ok
  • crontab -l命令查看已经设定的任务计划
[root@minglinux-01 ~]# crontab -l
08 22 30 10 2 echo "ok" > /root/cron.log
  • crontab -r命令删除任务计划
[root@minglinux-01 ~]# crontab -l
08 22 30 10 2 echo "ok" > /root/cron.log
[root@minglinux-01 ~]# crontab -r
[root@minglinux-01 ~]# crontab -l
no crontab for root
  • 任务计划备份
    因为命令crontab -e实际上是打了/var/spool/cron/username文件,所以任务计划都在该文件中,备份该文件就备份了任务计划。

  • systemctl start crond.service
    启动crond服务,保证服务是启动状态 。

  • systemctl status crond查看一下crond服务是否已经启动

[root@minglinux-01 ~]# systemctl status crond
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since 六 2018-10-27 01:51:17 CST; 3 days ago
 Main PID: 579 (crond)
   CGroup: /system.slice/crond.service
           └─579 /usr/sbin/crond -n

10月 27 01:51:17 minglinux-01 systemd[1]: Started Command Scheduler.
10月 27 01:51:17 minglinux-01 systemd[1]: Starting Command Schedule...
10月 27 01:51:17 minglinux-01 crond[579]: (CRON) INFO (RANDOM_DELAY...
10月 27 01:51:17 minglinux-01 crond[579]: (CRON) INFO (running with...
Hint: Some lines were ellipsized, use -l to show in full.

看Active那行,如果是启动状态显示为active(running),未启动则显示为inactive (dead)。

二、 chkconfig工具

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

[root@minglinux-01 ~]# ls /etc/init.d/
functions  netconsole  network  README
  • 使用命令chkconfig --list列出所有的服务及其每个级别的开启状态:
[root@minglinux-01 ~]# 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表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动

  • 使用--level指定级别,后面是服务名,然后是off或者on。
[root@minglinux-01 ~]#  chkconfig --level 3 network off 
[root@minglinux-01 ~]# 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:关

-选项--level后面还可以指定多个级别,如下所示:

[root@minglinux-01 ~]# chkconfig --level 345 network off 
[root@minglinux-01 ~]# chkconfig --list |grep network

注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。 

      要列出 systemd 服务,请执行 'systemctl list-unit-files'。
      查看在具体 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

network         0:关 1:关 2:开 3:关 4:关 5:关 6:关
  • 另外还可以省略级别,默认是针对级别2、3、4和5操作的,如下所示:
[root@minglinux-01 ~]# chkconfig network on 
[root@minglinux-01 ~]# chkconfig --list |grep network

注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。 

      要列出 systemd 服务,请执行 'systemctl list-unit-files'。
      查看在具体 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

network         0:关 1:关 2:开 3:开 4:开 5:开 6:关
  • chkconfig还有一个功能,就是可以把某个服务加入系统服务或者删除,即可以使用“chkconfig --add 服务名“或者“chkconfig --del 服务名“这样的形式。
    这个功能常用于把自定义的启动脚本加入到系统服务当中。

三、 systemd管理服务

  • systemctl list-units --all --type=service列出系统所有的服务
oot@minglinux-01 ~]# systemctl list-units --all --type=service
  UNIT                      LOAD      ACTIVE   SUB     DESCRIPTION
  auditd.service            loaded    active   running Security Auditin
  cpupower.service          loaded    inactive dead    Configure CPU po
  crond.service             loaded    active   running Command Schedule
  dbus.service              loaded    active   running D-Bus System Mes
● display-manager.service   not-found inactive dead    display-manager.
  dm-event.service          loaded    inactive dead    Device-mapper ev
  dracut-shutdown.service   loaded    inactive dead    Restore /run/ini
  ebtables.service          loaded    inactive dead    Ethernet Bridge 
  emergency.service         loaded    inactive dead    Emergency Shell
● exim.service              not-found inactive dead    exim.service
  • 一些常用systemd相关命令

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

四、 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 // 列出正在运行(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

五、 target介绍

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

  • systemctl list-unit-files --type=target查看当前
    系统的所有 target

  • 关于target的命令:

systemctl get-default // 查看系统默认的target
systemctl set-default multi-user.target // 设置默认的target

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

service、unit以及target之间的联系:
(1) 一个service属于一种unit;
(2) 多个unit一起组成了一个target;
(3) 一个target里面包含了多个service,你可以查看文件/usr/lib/systemd/system/sshd.service里面[install]部分的内容,它就定义了该service属于哪一个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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容