2019独角兽企业重金招聘Python工程师标准>>>

10月30日任务

10.23 linux任务计划cron

10.24 chkconfig工具

10.25 systemd管理服务

10.26 unit介绍

10.27 target介绍

任务计划 crontab

在某个时间执行某些命令或脚本,做到自动化运维

cron服务配置文件

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

常用参数

  • -l 列出计划任务表
# 初始为设置,计划任务表为空
[root@localhost ~]# crontab -l
no crontab for root
  • -e 编辑计划任务表
# 编辑
[root@localhost ~]# crontab -e
# 进入编辑模式,按i键后输入
0 3 * * 1-5 /usr/bin/tar -cvf /home/user1 >> user.log 2>&1按esc退出编辑模式,:wq保存退出# 查看验证
[root@localhost ~]# crontab -l
0 3 * * 1-5 /usr/bin/tar -cvf /home/user1 >> user.log 2>&1
  • -u USER (可以配合其他参数使用)
[root@localhost ~]# crontab -u user1 -e[root@localhost ~]# crontab -u user1 -l
0 8 * * * echo "good morning"默认不指定-u,设置或显示的是当前用户
  • -r 删除用户的计划任务表(配合-u指定用户)
[root@localhost ~]# crontab -r -u user1
[root@localhost ~]# crontab -u user1 -l
no crontab for user1

cron样例

[root@localhost ~]# man 5 crontab
...
EXAMPLE CRON FILE# use /bin/sh to run commands, no matter what /etc/passwd saysSHELL=/bin/sh# mail any output to `paul', no matter whose crontab this isMAILTO=paul#CRON_TZ=Japan# run five minutes after midnight, every day5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1# run at 2:15pm on the first of every month -- output mailed to paul15 14 1 * *     $HOME/bin/monthly# run at 10 pm on weekdays, annoy Joe0 22 * * 1-5    mail -s "It's 10pm" joe%Joe,%%Where are your kids?%23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday"5 4 * * sun     echo "run at 5 after 4 every sunday"
...

系统服务管理chkconfig

centos6及之前版本使用

在centos7中已经不再使用chkconfig来进行系统服务的管理,改为systemctl命令了,所以只显示了部分服务

基本使用

  • 显示管理的服务
[root@localhost ~]# 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:关
  • 关闭在指定运行级的上的服务
[root@localhost ~]# chkconfig --level 3 network off
[root@localhost ~]# 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,4,5级应该写成345(中间没有空格和逗号)
[root@localhost ~]# chkconfig --level 345  network off
[root@localhost ~]# 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:关
  • 向管理列表添加服务
# 将新服务的启动脚本加入到/etc/init.d/目录下(这里就简单拷贝下做个示范)
[root@localhost ~]# cp /etc/init.d/network /etc/init.d/ssh# 添加新服务至管理列表
[root@localhost ~]# chkconfig --add ssh
[root@localhost ~]# 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:关
ssh             0:关 1:关 2:开 3:开 4:开 5:开 6:关
  • 删除管理列表中的服务
[root@localhost etc]# chkconfig --del ssh
[root@localhost etc]# 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:关

系统服务管理systemd(centos7)

[root@localhost ~]# systemctl list-units --all --type=serviceUNIT                      LOAD      ACTIVE   SUB     DESCRIPTIONauditd.service            loaded    active   running Security Auditing brandbot.service          loaded    inactive dead    Flexible Branding chronyd.service           loaded    active   running NTP client/servercpupower.service          loaded    inactive dead    Configure CPU powecrond.service             loaded    active   running Command Schedulerdbus.service              loaded    active   running D-Bus System Messa
● display-manager.service   not-found inactive dead    display-manager.sedracut-shutdown.service   loaded    inactive dead    Restore /run/initrebtables.service          loaded    inactive dead    Ethernet Bridge Fiemergency.service         loaded    inactive dead    Emergency Shell...systemd-vconsole-setup.service loaded    active   exited  Setup Virtualtuned.service             loaded    active   running Dynamic System Tunvmtoolsd.service          loaded    active   running Service for virtuaLOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB
SUB    = The low-level unit activation state, values depend on unit type.83 loaded units listed.
To show all installed unit files use 'systemctl list-unit-files'.
lines 76-91/91 (END)# 不加--all,只列出active状态的服务
[root@localhost ~]# systemctl list-units --type=serviceUNIT                      LOAD   ACTIVE SUB     DESCRIPTIONauditd.service            loaded active running Security Auditing Servichronyd.service           loaded active running NTP client/servercrond.service             loaded active running Command Schedulerdbus.service              loaded active running D-Bus System Message Bufirewalld.service         loaded active running firewalld - dynamic firgetty@tty1.service        loaded active running Getty on tty1
...
  • 设置服务开机启动/不启动
# 开机启动,服务后可加可不加.service,系统会创建服务脚本文件的软链接
[root@localhost ~]# systemctl enable crond
[root@localhost ~]# systemctl enable crond.service
Created symlink from /etc/systemd/system/multi-user.target.wants/crond.service to /usr/lib/systemd/system/crond.service.# crond.service脚本内容如下
[root@localhost ~]# cat /usr/lib/systemd/system/crond.service
[Unit]
Description=Command Scheduler
After=auditd.service systemd-user-sessions.service time-sync.target[Service]
EnvironmentFile=/etc/sysconfig/crond
ExecStart=/usr/sbin/crond -n $CRONDARGS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process[Install]
WantedBy=multi-user.target# 设置开机不启动,系统移除服务脚本的软链接
[root@localhost ~]# systemctl disable crond
Removed symlink /etc/systemd/system/multi-user.target.wants/crond.service.
  • 查看服务状态
[root@localhost ~]# systemctl status crond
● crond.service - Command SchedulerLoaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)Active: active (running) since 四 2017-10-26 17:51:07 CST; 2h 28min agoMain PID: 525 (crond)CGroup: /system.slice/crond.service└─525 /usr/sbin/crond -n10月 26 17:51:07 localhost.localdomain systemd[1]: Started Command Sc...
10月 26 17:51:07 localhost.localdomain systemd[1]: Starting Command S...
10月 26 17:51:08 localhost.localdomain crond[525]: (CRON) INFO (RANDO...
10月 26 17:51:10 localhost.localdomain crond[525]: (CRON) INFO (runni...
Hint: Some lines were ellipsized, use -l to show in full.
  • 停止服务
[root@localhost ~]# systemctl stop crond
  • 启动服务
[root@localhost ~]# systemctl start crond
  • 重启服务
[root@localhost ~]# systemctl restart crond
  • 检查服务是否开机启动
[root@localhost ~]# systemctl is-enabled crond
enabled

unit介绍

列出系统内所有unit

[root@localhost ~]# ls /usr/lib/systemd/system
arp-ethers.service
auditd.service
autovt@.service
basic.target
basic.target.wants
blk-availability.service
bluetooth.target
brandbot.path
brandbot.service
chrony-dnssrv@.service
chrony-dnssrv@.timer
chronyd.service
chrony-wait.service
...

unit分为以下类型 类型 | 说明 | 举例 --- | --- | --- service | 系统服务 | crond.service target | 多个unit组成的组 | timers.target device | 硬件设备 | mount | 文件系统挂载点 | dev-mqueue.mount automount | 自动挂载点 | path | 文件或路径 | systemd-ask-password-console.path scope | 不是由systemd启动的外部进程 | slice | 进程组 | system.slice snapshot | systemd快照 | socket | 进程间通信套接字 | systemd-shutdownd.socket swap | swap文件 | timer | 定时器 | systemd-readahead-done.timer

unit相关命令

  • 只显示active状态的unit;加上--all参数全部显示
[root@localhost system]# systemctl list-unitsUNIT                      LOAD   ACTIVE SUB       DESCRIPTIONproc-sys-fs-binfmt_misc.automount loaded active waiting   Arbitrary Exesys-devices-pci0000:00-0000:00:07.1-ata2-host2-target2:0:0-2:0:0:0-blocsys-devices-pci0000:00-0000:00:10.0-host0-target0:0:0-0:0:0:0-block-sdasys-devices-pci0000:00-0000:00:10.0-host0-target0:0:0-0:0:0:0-block-sdasys-devices-pci0000:00-0000:00:10.0-host0-target0:0:0-0:0:0:0-block-sdasys-devices-pci0000:00-0000:00:10.0-host0-target0:0:0-0:0:0:0-block-sdasys-devices-pci0000:00-0000:00:10.0-host0-target0:0:1-0:0:1:0-block-sdbsys-devices-pci0000:00-0000:00:11.0-0000:02:01.0-net-ens33.device loadesys-devices-pci0000:00-0000:00:11.0-0000:02:02.0-sound-card0.device loasys-devices-platform-serial8250-tty-ttyS1.device loaded active plugged sys-devices-platform-serial8250-tty-ttyS2.device loaded active plugged sys-devices-platform-serial8250-tty-ttyS3.device loaded active plugged sys-devices-pnp0-00:05-tty-ttyS0.device loaded active plugged   /sys/desys-module-configfs.device loaded active plugged   /sys/module/configfssys-subsystem-net-devices-ens33.device loaded active plugged   82545EM
lines 1-16
  • 只显示状态为inactive的unit(配合--type=service再次只刷选出服务)
[root@localhost system]# systemctl list-units --all --state=inactiveUNIT                      LOAD      ACTIVE   SUB  DESCRIPTIONproc-sys-fs-binfmt_misc.mount loaded    inactive dead Arbitrary Executasys-fs-fuse-connections.mount loaded    inactive dead FUSE Control Filetmp.mount                 loaded    inactive dead Temporary Directorysystemd-ask-password-console.path loaded    inactive dead Dispatch Passbrandbot.service          loaded    inactive dead Flexible Branding Sercpupower.service          loaded    inactive dead Configure CPU power r
● display-manager.service   not-found inactive dead display-manager.servidracut-shutdown.service   loaded    inactive dead Restore /run/initramfebtables.service          loaded    inactive dead Ethernet Bridge Filteemergency.service         loaded    inactive dead Emergency Shell
● exim.service              not-found inactive dead exim.service
  • 只显示状态为active的服务
[root@localhost system]# systemctl list-units --type=serviceUNIT                      LOAD   ACTIVE SUB     DESCRIPTIONauditd.service            loaded active running Security Auditing Servichronyd.service           loaded active running NTP client/servercrond.service             loaded active running Command Schedulerdbus.service              loaded active running D-Bus System Message Bufirewalld.service         loaded active running firewalld - dynamic firgetty@tty1.service        loaded active running Getty on tty1
● kdump.service             loaded failed failed  Crash recovery kernel akmod-static-nodes.service loaded active exited  Create list of requirednetwork.service           loaded active exited  LSB: Bring up/down netwNetworkManager-wait-online.service loaded active exited  Network ManageNetworkManager.service    loaded active running Network Managerpolkit.service            loaded active running Authorization Managerpostfix.service           loaded active running Postfix Mail Transport rhel-dmesg.service        loaded active exited  Dump dmesg to /var/log/rhel-import-state.service loaded active exited  Import network configur
lines 1-16[root@localhost system]# systemctl list-units --state=active
  • 查看服务是否启动
[root@localhost system]# systemctl is-active crond.service
active

target介绍

为了方便管理用target来管理unit,一个target是多个unit的组合

  • 列出系统内所有的target
[root@localhost system]# 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
...
  • 查看指定target下面的units组成

target下还可以有target

[root@localhost system]# 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
...
  • 查看系统默认的target
[root@localhost system]# systemctl get-default
multi-user.targe
  • 设置系统默认的target(类似于centos6内的修改系统运行级别
[root@localhost 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.

CentOS6中在 /etc/inittab 文件中可以修改系统的运行级别,而在CentOS7中使用了类似的target来管理运行级

# /usr/lib/systemd/system目录下
[root@localhost system]# ls -l runlevel*.target
lrwxrwxrwx. 1 root root 15 10月 18 02:32 runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 10月 18 02:32 runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 10月 18 02:32 runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 10月 18 02:32 runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 10月 18 02:32 runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 10月 18 02:32 runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 10月 18 02:32 runlevel6.target -> reboot.target

小结

  • 一个service属于一种类型的unit
  • 同类型的多个unit组成一个target
  • 一个target内包含多个service

查看service属于哪个target(看Install块)

[root@localhost system]# cat /usr/lib/systemd/system/sshd.service
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service[Service]
Type=forking
PIDFile=/var/run/sshd.pid
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s[Install]
WantedBy=multi-user.target

转载于:https://my.oschina.net/u/3964535/blog/2254503

任务计划cron、服务管理工具chkconfig/systemctl相关推荐

  1. 了解systemctl和chkconfig的服务管理工具

    crontab计划任务 crontab计划任务的计时方式:对大部分时间单位都清楚的划分,具体可以划分到分钟,时间单位有分钟,小时,日(一个月内的第几天),月,周(一周的第几天,计划任务中可以是指定为每 ...

  2. Ubuntu 和 Redhat / Fedora 服务管理命令对比表(附Fedora16新的服务管理工具systemctl )...

    以 apache/httpd 服务作为例子 任务 Red Hat / Fedora Ubuntu Ubuntu  (with sysv-rc-conf or sysvconfig) 立即启动/停止某服 ...

  3. 已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。...

    [记得server 跟 client 机器都要这样配置] 已禁用对分布式事务管理器(MSDTC)的网络访问.请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问. 已禁用对分 ...

  4. linux6添加chkconfig管理,10、14 Linux系统服务管理工具-chkconfig

    chkconfig --list chkconfig --level 3 network off chkconfig --level 345 network off chkconfig --del n ...

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

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

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

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

  7. systemd:源自红帽的系统初始化和服务管理套件

    目录 概述 历史 设计 核心组件和库 辅助组件 systemd的配置 配置文件的层级结构 采纳情况 与其他软件的集成 接受情况 分支版本和替代实现 eudev elogind uselessd sys ...

  8. centos的服务管理

    systemd 控制服务和守护进程: 1. 在RHEL7 以后服务管理都是通过systemd 来完成的 2. systemd 提供了一个唯一的管理工具: systemctl 3.systemd 将系统 ...

  9. 常用的分析管理工具方法【整理】

    常用的分析管理工具方法 常用的分析管理工具方法 二八原则 SWOT分析法 鱼骨图分析法 5M因素分析法 5M1E分析法 头脑风暴法 名义群体法 德尔菲法 电子会议分析法 几种决策方法比较 PDCA循环 ...

最新文章

  1. LeetCode--485
  2. python中字符串有什么组成_python字符串操作
  3. VC\JS Base64转码
  4. Python Django URL逆向解析(通过模板页面逆向访问)代码示例
  5. 队列同步器 AbstractQueuedSynchronizer
  6. 进程控制 (二) Others
  7. 用定时器控制灯的闪烁梯形图_用西门子PLC设计灯的闪烁的梯形图,就只要梯形图。...
  8. OpenCV3学习(11.2)LK光流法原理及opencv实现
  9. 用有穷状态自动机描述计算机网络的传输层协议,计算机网络基椽—第八章(传输层)(全).ppt...
  10. VC MFC列表视图(CListCtrl)控件
  11. 利用syslinux制作Dos、WinPE、Slax Linux集成u盘
  12. 关于background的一些知识
  13. 人肉搜索将被禁止,大家要保护好自己的个人信息!
  14. css常见居中方法总结
  15. android手机邮件客户端,安卓手机邮件客户端ProfiMail Go
  16. R语言散点图+趋势线+标注
  17. 推荐系统 | 基础推荐模型 | 逻辑回归模型 | LS-PLM | PyTorch实现
  18. android ui开发知乎,实现知乎app的主界面效果
  19. 重磅干货!万字长文教你如何做出 ChatGPT
  20. Pytorch实现word2vec(Skip-gram训练方式)

热门文章

  1. flask mysql项目模板渲染_[Flask] Flask问题集(后端模板渲染项目)
  2. EEG数据、伪影的查看与清洗
  3. 南非的5DT数据手套使用说明
  4. Docker桌面不再对企业用户免费,每月订阅费最高21美元,用户直接炸锅了
  5. 传孙正义领投滴滴无人车3亿美元新融资,此前软银宣布出售阿里股份等资产
  6. 直播回顾 | 最强中文NLP预训练模型艾尼ERNIE官方揭秘
  7. shell之for和if实现批量替换多目录下的文件
  8. Android进阶(六)Binder机制
  9. Struts2 关于返回type=chain的用法.
  10. 错过CVPR 2017?绝对不能错过GAIR大讲堂——上海交大专场开启报名