1. linux任务计划cron

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

命令crontab

linux的任务计划功能的操作都是通过crontab命令来完成的,其常用的选项有以下几个:

-u:表示指定某个用户,不加-u选项则为当前用户。

-e:表示制定计划任务

-l:表示列出计划任务

-r:表示删除计划任务

任务计划的配置文件:

# 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

解释:

格式:分 时 日 月 周 user command

分范围0-59,时范围0-23,日范围1-31,月范围1-12,周1-7(0表示周日,也可以用7表示,也都可以用英文简写sun,mon,tue,wed,thu,fri,sat)

可用格式1-5表示一个范围1到5,如1-5月或者1-5点等。

可用格式1,2,3表示1或者2或者3.如1,2,3月份或者1点,2点,3点或者星期一,星期二,星期三。

可用格式*/2表示被2整除的数字,比如小时,那就是每隔2小时;月份,那就是偶数月2月,4月,6月等。

使用 crontab -e 来进行编写任务计划,这实际上是使用vim工具打开了crontab的配置文件。crontab -e 是打开了目录文件“/var/spool/cron/username” (如果是root则打开的是/var/spool/cron/root)这个文件,保存时:wq即可,但是请千万不要直接去编辑那个文件,否则会出错,一定要使用命令crontab -e来编辑

启动计划任务服务命令:

systemctl start crond

停止任务计划服务命令:

systemctl stop crond

检查服务是否启动命令:

systemctl status crond 或者查看进程启动命令ps aux |grep cron

# systemctl status crond

● crond.service - Command Scheduler

Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)

Active: active (running) since 四 2017-11-30 14:00:30 CST; 4 days ago

Main PID: 506 (crond)

CGroup: /system.slice/crond.service

└─506 /usr/sbin/crond -n

1月 29 14:00:30 ccj systemd[1]: Started Command Scheduler.

1月 29 14:00:30 ccj systemd[1]: Starting Command Scheduler...

1月 29 14:00:30 ccj crond[506]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 96% if used.)

1月 29 14:00:30 ccj crond[506]: (CRON) INFO (running with inotify support)

# ps aux |grep cron

root        506  0.0  0.1 126236  1612 ?        Ss   1月29   0:01 /usr/sbin/crond -n

root       8380  0.0  0.0 112676   972 pts/0    S+   20:22   0:00 grep --color=auto cron

2. chkconfig工具

windows系统有开机启动项,linux也同样有开机启动项。在centos6上的开机启动项管理工具为chkconfig,所有的开机启动服务都可以在/etc/init.d/目录看到。但是centos7已经不在用chkconfig管理开机启动项。

# ls /etc/init.d/

functions  netconsole  network  README

使用命令chkconfig --list列出所有的服务及其每个级别的开启状态,如下所示:

# 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:关

在这里我们会看到一个提示,它提示我们该命令输出的内容并没有包含Centos 7原生systemd服务,而这里仅仅列出来SysV服务,这也是/etc/init.d/目录下面只有一两个启动脚本的根本原因。也就是说,早期CentOS版本(7之前)采用的服务管理都是Sysv,而7换成了systemd。

运行级别为系统启动级别,具体含义如下:

0 shutdown关机

1 单用户模式

2 无NFS支持的多用户模式

3 完全多用户模式,常用的命令行模式

4 保留给用户自定义

5 图形界面登录,比3多了一个图形界面

6 重启

运行级别0,1,6作为保留模式。通常做设置时,如果不指定级别,则默认为更改2,3,4,5。

# chkconfig --level 3 network off    关闭3级别的network服务

# chkconfig --list                           查看结果,3级别已关闭

注意:该输出结果只显示 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 off     关闭3,4,5级别的network服务

# chkconfig --list                               查看结果,3、4、5级别已关闭

注意:该输出结果只显示 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 network on        省略级别,默认是针对2、3、4、5操作

# 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 --del network      删除network服务

# chkconfig --list

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

如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。

欲查看对特定 target 启用的服务请执行

'systemctl list-dependencies [target]'。

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

# chkconfig --add network    添加network服务

# 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:关

3. systemd管理服务

列出系统所有服务

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

UNIT                                   LOAD      ACTIVE   SUB     DESCRIPTION

auditd.service                         loaded    active   running Security Auditing Service

brandbot.service                       loaded    inactive dead    Flexible Branding Service

chronyd.service                        loaded    active   running NTP client/server

cpupower.service                       loaded    inactive dead    Configure CPU power related settings

crond.service                          loaded    active   running Command Scheduler

dbus.service                           loaded    active   running D-Bus System Message Bus

● display-manager.service                not-found

# ls /usr/lib/systemd/system      启动服务对应的脚本文件目录

arp-ethers.service                      lvm2-lvmetad.service                swap.target

auditd.service                          lvm2-lvmetad.socket                 sys-fs-fuse-connections.mount

autovt@.service                         lvm2-lvmpolld.service               sysinit.target

basic.target                            lvm2-lvmpolld.socket                sysinit.target.wants

basic.target.wants                      lvm2-monitor.service                sys-kernel-config.mount

blk-availability.service                lvm2-pvscan@.service                sys-kernel-debug.mount

bluetooth.target                        machine.slice                       syslog.socket

brandbot.path                           machines.target                     syslog.target.wants

brandbot.service                        messagebus.service                  sysstat.service

几个常用的服务相关的命令

systemctl enable crond.service   让服务开机启动

systemctl disable crond              不让开机启动

systemctl status crond               查看状态

systemctl stop crond                 停止服务

systemctl start crond                 启动服务

systemctl restart crond              重启服务

systemctl is-enabled crond        检查服务是否开机启动

4. unit介绍

/usr/lib/systemd/system 此目录下列出了很多文件,这些文件都是unit。

系统所有unit,分为类别如下:

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 --type=service         列出状态为active的service

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

5. target介绍

target类似于centos6的启动级别,但target内又支持多个target同时启动,target其实是多个unit的组合。启动target就是启动多个unit,用target来管理这些unit。

查看当前系统所有的target

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

UNIT FILE                 STATE

basic.target              static

bluetooth.target          static

cryptsetup-pre.target     static

cryptsetup.target         static

ctrl-alt-del.target       disabled

default.target            enabled

emergency.target          static

final.target              static

getty.target              static

graphical.target          static

halt.target               disabled

hibernate.target          static

hybrid-sleep.target       static

initrd-fs.target          static

initrd-root-fs.target     static

initrd-switch-root.target static

initrd.target             static

iprutils.target           disabled

kexec.target              disabled

local-fs-pre.target       static

local-fs.target           static

machines.target           disabled

multi-user.target         enabled

network-online.target     static

network-pre.target        static

network.target            static

...省略

查看指定target下面有哪些unit

# systemctl list-dependencies multi-user.target

multi-user.target

● ├─auditd.service

● ├─brandbot.path

● ├─chronyd.service

● ├─crond.service

● ├─dbus.service

● ├─irqbalance.service

● ├─kdump.service

● ├─network.service

● ├─NetworkManager.service

● ├─plymouth-quit-wait.service

● ├─plymouth-quit.service

● ├─postfix.service

● ├─rsyslog.service

● ├─sshd.service

● ├─sysstat.service

● ├─systemd-ask-password-wall.path

● ├─systemd-logind.service

● ├─systemd-readahead-collect.service

● ├─systemd-readahead-replay.service

● ├─systemd-update-utmp-runlevel.service

● ├─systemd-user-sessions.service

● ├─tuned.service

● ├─vmtoolsd.service

● ├─basic.target

● │ ├─firewalld.service

● │ ├─microcode.service

...省略

查看系统默认的target

# systemctl get-default

multi-user.target

设置默认的target

# 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.

运行级别上面提到的multi-user.target等同于centos6的运行级别3。其实还有其他几个target对应0-6运行级别,如下所示:service、unit以及target之间的联系

一个service属于一种unit;

多个unit一起组成了一个target;

一个target里面包含了多个service,你可以查看/usr/lib/systemd/system/sshd.service里面【install】部分的内容,它就定义了该service属于哪一个target。
# cat /usr/lib/systemd/system/sshd.service[Unit]Description=OpenSSH server daemonDocumentation=man:sshd(8) man:sshd_config(5)After=network.target sshd-keygen.serviceWants=sshd-keygen.service[Service]Type=forkingPIDFile=/var/run/sshd.pidEnvironmentFile=/etc/sysconfig/sshdExecStart=/usr/sbin/sshd$OPTIONSExecReload=/bin/kill -HUP$MAINPIDKillMode=proce***estart=on-failureRestartSec=42s[Install]WantedBy=multi-user.target

转载于:https://blog.51cto.com/ccj168/2066674

cron计划任务、chkconfig工具、systemd管理服务、unit、target介绍相关推荐

  1. iptables规则备份和恢复,任务计划chkconfig工具systemd管理服务

    2019独角兽企业重金招聘Python工程师标准>>> iptables规则备份和恢复 备份 iptables-save > /tmp/ipt.txt service ipta ...

  2. 34.任务计划cron chkconfig systemctl管理服务 unit target

    2019独角兽企业重金招聘Python工程师标准>>> 10.23 linux任务计划cron 10.24 chkconfig工具 10.25 systemd管理服务 10.26 u ...

  3. 任务计划、chkconfig工具、systemd管理服务、unit、target

    比如备份数据或者重启服务. crontab -u.-e.-l.-r(删除) 格式:分 时 日 月 周 user command 文件/var/spool/cron/username 分范围0-59,时 ...

  4. ansible介绍、安装、远程执行命令、拷贝文件或目录、远程执行脚本、管理任务计划、安装包和管理服务、playbook、变量、循环、条件判断、handlers、安装nginx、管理配置文件

    24.15 ansible介绍 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系 ...

  5. centos8之systemd管理服务开机自启动

    一.Systemd简介   systemd即为system daemon,是linux下的一种init软件,由Lennart Poettering带头开发,并在LGPL 2.1及其后续版本许可证下开源 ...

  6. Linux日常运维管理技巧(三)iptables规则备份和恢复、firewalld的9个zone、任务计划cron、chkconfig系统服务管理、添加服务命令、systemctl管理服务

    目录 Linux防火墙-netfilter iptables规则备份和恢复 Linux防火墙-firewalled firewalld的9个zone firewalld关于zone的操作 firewa ...

  7. 10.23cron10.24chkconfig工具10.25systemd管理服务10.26unit

    扩展: 1. anacron: http://blog.csdn.net/strikers1982/article/details/4787226 2. xinetd服(默认没安装这个服务,需要yum ...

  8. crontab、chkconfig、systemd、unit、targ

    2019独角兽企业重金招聘Python工程师标准>>> 10.23 linux任务计划cron # cat /etc/crontab liunx下的任务计划配置文件 crontab ...

  9. 《软件测试技术实战:设计、工具及管理》—第1章 1.1节软件测试的基本理论...

    本节书摘来自异步社区<软件测试技术实战:设计.工具及管理>一书中的第1章,第1.1节软件测试的基本理论,作者顾翔,更多章节内容可以访问云栖社区"异步社区"公众号查看. ...

最新文章

  1. 【C++ 语言】类型转换 ( 转换操作符 | const_cast | static_cast | dynamic_cast | reinterpret_cast | 字符串转换 )
  2. 用CFree写的Windows SDK 画线程序
  3. Java 添加播放MIDI音乐
  4. boxfilter 实现
  5. Linux 4.1内核热补丁成功实践
  6. Android开发(1) | Fragment 的应用——新闻应用
  7. J-Link cmd的使用
  8. jenkins没有参数化构建过程选项
  9. 什么是开放源代码,以及为什么不使用开放源代码?
  10. 安川e1000中文说明书_安川E1000变频器维修故障代码说明书
  11. 报表控件FastReport.NET使用教程:如何在 Visual Studio 中使用报表组件
  12. [Maven实战-许晓斌]-[第二章]-2.1在Windows上安装maven
  13. windows下安装nvm教程,nvm use 乱码解决
  14. PTA 1033 旧键盘打字
  15. 使用pymysql报错:pymysql.err.InternalError: Packet sequence number wrong - got 5 expected 1
  16. [Power Query] 标题提升
  17. 【数据库】SQL Server的使用教程
  18. 模型预测控制(MPC)解析(十一):变量约束的预测控制
  19. howlerjs 音乐播放插件
  20. Wince6.0 s3c6410触摸屏驱动分析

热门文章

  1. java chackbox,Java CheckBox.setText方法代码示例
  2. 红黑树的红黑有什么意义_红枸杞和黑枸杞有什么不同?黑枸杞真的比红枸杞要好吗?...
  3. java 迭代器失效_迭代器失效的几种情况
  4. CKEditor快速介绍与入门示例
  5. [Ext JS 4] 实战之将chart导出为png, jpg 格式的文件
  6. 【切图】门户网首页模板一 (类似CSDN)
  7. new 一个结构体数组_C语言结构体到底占多少内存?简单!一文助你解决结构体内存问题...
  8. 云计算具有什么平台_如何搭建自己的云计算平台?
  9. python将mongodb导出_使用python从mongodb将数据导出到csv
  10. k折交叉验证法的额外步骤_教你几招蝴蝶结系法步骤,OMG!这怎么配都美