[CentOS 7系列]系统服务管理

1、任务计划

cron是一个linux下的定时执行工具(相当于windows下的scheduled task),可以在无需人工干预的情况下定时地运行任务task。cron服务提供crontab命令来设定cron服务的。

▎常用参数:

命令 作用
crontab -u 设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数 
crontab -l 列出某个用户cron服务的详细内容 
crontab -r
删除某个用户的cron服务

crontab -e 编辑某个用户的cron服务  

▎crontab格式:

[[email protected] ~]# 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

每个用户的任务计划文件存在/var/spool/cron/目录下同名的文件里

分范围0-59,时范围0-23,日范围0-31,月范围0-12,周0-6

可用格式1-5表示一个范围1到5

可用格式1,2,3表示1或者2或者3

可用格式*/2表示被2整除的数字,比如小时,就指每隔2小时

要保证服务是启动状态:

①systemctl start crond            启动服务

②systemctl status crond.service   查看状态

测试示例:

[[email protected] ~]# crontab -e
0 5 1-15 */2 1,3,5 /usr/local/sbin/1.sh   
                        ##0分,5点,1-15日,双数月份,周一,周三,周五 执行脚本1.sh
[[email protected] ~]# crontab -l
0 5 1-15 */2 1,3,5 /usr/local/sbin/1.sh
[[email protected] ~]# crontab -u juispan -l
0 1 1-5 * * /tmp/123.py[[email protected] ~]# crontab -e0 5 1-15 */2 1,3,5 /usr/local/sbin/1.sh   
                        ##0分,5点,1-15日,双数月份,周一,周三,周五 执行脚本1.sh
[[email protected] ~]# crontab -l
0 5 1-15 */2 1,3,5 /usr/local/sbin/1.sh
[[email protected] ~]# crontab -u juispan -l
0 1 1-5 * * /tmp/123.py
[[email protected] ~]# crontab -r
[[email protected] ~]# crontab -l
no crontab for root
[[email protected] ~]# systemctl start crond
[[email protected] ~]# systemctl status crond.service
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since 五 2017-07-14 22:37:31 CST; 6h ago
 Main PID: 495 (crond)
   CGroup: /system.slice/crond.service
           └─495 /usr/sbin/crond -n

7月 14 22:37:31 juispan systemd[1]: Started Command Scheduler.
7月 14 22:37:31 juispan systemd[1]: Starting Command Scheduler...
7月 14 22:37:31 juispan crond[495]: (CRON) INFO (RANDOM_DELAY will be scal....)
7月 14 22:37:33 juispan crond[495]: (CRON) INFO (running with inotify support)
Hint: Some lines were ellipsized, use -l to show in full.

2、开机启动

1)chkconfig

chkconfig是CentOS 7以前用的系统服务管理工具。作为过渡,CentOS 7中还存在着。

[[email protected] ~]# ls /etc/init.d          ##存放服务的目录
functions  netconsole  network  README
[[email protected] ~]# 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:关
[[email protected] ~]# chkconfig --level 3 network off  ##关闭3模式下的network服务
[[email protected] ~]# 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:关
[[email protected] ~]# chkconfig --level 345 network off  ##关闭345模式下的network服务
[[email protected] ~]# 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:关
[[email protected] ~]# chkconfig --del network   ##删除network服务
[[email protected] ~]# chkconfig --list

注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。
      如果您想列出 systemd 服务,请执行 ‘systemctl list-unit-files‘。
      欲查看对特定 target 启用的服务请执行
      ‘systemctl list-dependencies [target]‘。

netconsole      0:关    1:关    2:关    3:关    4:关    5:关    6:关
[[email protected] ~]# chkconfig --add network   ##增加network服务
[[email protected] ~]# 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:关
[[email protected] ~]# chkconfig network off     ##关闭network服务
[[email protected] ~]# 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:关

2)systemd

systemctl是systemd下的一个工具。该命令是用来替代service和chkconfig两个命令的。在systemd的管理体系里面,以前的运行级别(runlevel)的概念被新的运行目标(target)所取代。tartget的命名类似于multi-user.target等这种形式,比如原来的运行级别3(runlevel3)就对应新的多用户目标(multi-user.target),run level 5就相当于graphical.target。

▎systemd:

[[email protected] ~]# systemctl enable crond.service  ##让服务开机启动
[[email protected] ~]# systemctl status crond    ##查看状态
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since 五 2017-07-14 22:37:31 CST; 7h ago
 Main PID: 495 (crond)
   CGroup: /system.slice/crond.service
           └─495 /usr/sbin/crond -n

7月 14 22:37:31 juispan systemd[1]: Started Command Scheduler.
7月 14 22:37:31 juispan systemd[1]: Starting Command Scheduler...
7月 14 22:37:31 juispan crond[495]: (CRON) INFO (RANDOM_DELAY will be scal....)
7月 14 22:37:33 juispan crond[495]: (CRON) INFO (running with inotify support)
Hint: Some lines were ellipsized, use -l to show in full.  
[[email protected] ~]# systemctl disable crond         ##不让开机启动
[[email protected] ~]# systemctl status crond
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; disabled; vendor preset: enabled)
   Active: active (running) since 五 2017-07-14 22:37:31 CST; 7h ago
 Main PID: 495 (crond)
   CGroup: /system.slice/crond.service
           └─495 /usr/sbin/crond -n

7月 14 22:37:31 juispan systemd[1]: Started Command Scheduler.
7月 14 22:37:31 juispan systemd[1]: Starting Command Scheduler...
7月 14 22:37:31 juispan crond[495]: (CRON) INFO (RANDOM_DELAY will be scal....)
7月 14 22:37:33 juispan crond[495]: (CRON) INFO (running with inotify support)
Hint: Some lines were ellipsized, use -l to show in full.
[[email protected] ~]# systemctl stop crond      ##停止服务
[[email protected] ~]# systemctl status crond
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

7月 14 22:37:31 juispan systemd[1]: Started Command Scheduler.
7月 14 22:37:31 juispan systemd[1]: Starting Command Scheduler...
7月 14 22:37:31 juispan crond[495]: (CRON) INFO (RANDOM_DELAY will be scal....)
7月 14 22:37:33 juispan crond[495]: (CRON) INFO (running with inotify support)
7月 15 06:01:11 juispan systemd[1]: Stopping Command Scheduler...
7月 15 06:01:11 juispan systemd[1]: Stopped Command Scheduler.
Hint: Some lines were ellipsized, use -l to show in full.
[[email protected] ~]# systemctl start crond       ##启动服务
[[email protected] ~]# systemctl restart crond     ##重启服务
[[email protected] ~]# systemctl status crond
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; disabled; vendor preset: enabled)
   Active: active (running) since 六 2017-07-15 06:02:14 CST; 7s ago
 Main PID: 5962 (crond)
   CGroup: /system.slice/crond.service
           └─5962 /usr/sbin/crond -n

7月 15 06:02:14 juispan systemd[1]: Started Command Scheduler.
7月 15 06:02:14 juispan systemd[1]: Starting Command Scheduler...
7月 15 06:02:14 juispan crond[5962]: (CRON) INFO (RANDOM_DELAY will be sca....)
7月 15 06:02:14 juispan crond[5962]: (CRON) INFO (running with inotify support)
7月 15 06:02:14 juispan crond[5962]: (CRON) INFO (@reboot jobs will be run....)
Hint: Some lines were ellipsized, use -l to show in full.
[[email protected] ~]# systemctl is-enabled crond  ##检查服务是否开机启动
disabled

▎unit:

一个service属于一种类型的unit。

[[email protected] ~]# systemctl list-units  ##列出正在运行的unit

[[email protected] ~]# systemctl list-units --all  ##列出所有,包括失败的或者inactive的

[[email protected] ~]# systemctl list-units --all --state=inactive  ##列出inactive的unit

[[email protected] ~]# systemctl list-units --type=service  ##列出状态为active的service

[[email protected] ~]# systemctl is-active crond.service  ##查看某个服务是否为active
active

▎target:

多个unit组成了一个target,一个target里面包含了多个service。系统为了方便管理用target来管理unit。

[[email protected] ~]# systemctl list-unit-files --type=target
UNIT FILE                 STATE
basic.target              static
bluetooth.target          static
cryptsetup-pre.target     static
......
[[email protected] ~]# systemctl list-dependencies multi-user.target
multi-user.target                               ##查看指定target下有哪些unit
● ├─auditd.service
● ├─brandbot.path
......
[[email protected] ~]# 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.
[[email protected] ~]# systemctl get-default  ##查看系统默认的target
multi-user.target
[[email protected] ~]# 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
时间: 2024-08-06 16:00:40

[CentOS 7系列]系统服务管理的相关文章

Centos 7.0系统服务管理

从Centos7开始,不再用sysvinit管理系统服务了,而是改用了systemd,因此对系统服务管理方法已经变更,以下简述 1.查看当前所有系统服务的状态 1 systemctl 2.查看指定系统服务的状态 systemctl | grep "服务名称" 3.更改系统服务的状态 # 启动指定服务(重启后无效) systemctl start 服务名 # 停止指定服务(重启后无效) systemctl stop 服务名 # 重启指定服务(重启后无效) systemctl restar

centos系统服务管理

系统服务管理工具: chkconfig(所有linux发行版都有),用法很简单,如下: usage:   chkconfig --list [name] chkconfig --add <name> chkconfig --del <name> chkconfig [--level <levels>] <name> <on|off|reset|resetpriorities> ntsysv(Redhat系发行版特有),直接运行选择服务是否自启动.

CentOS 7.0 服务管理 – systemctl 命令

CentOS 7.0中已经没有service命令,而是启用了systemctl服务器命令 systemctl 是系统服务管理器命令,它实际上将 service 和 chkconfig 这两个命令组合到一起. 下面以nfs服务为例: 1.启动nfs服务 systemctl start nfs-server.service 2.设置开机自启动 systemctl enable nfs-server.service 3.停止开机自启动 systemctl disable nfs-server.serv

RedHat系列软件管理(第二版) --二进制软件包管理

RedHat系列软件管理 --二进制软件包管理 Linux学习思想-Linux相对与Windows来非常透明,因此,无论是系统,还是软件,都会有本身自带,或者是Man给提供的非常详细的说明/帮助文档,只要我们利用好这些文档,只要英文足够好,不需要任何教科书,任何教学视频,你都可以学好Linux! RPM包管理 Linux软件包命名形式 sudo-1.7.2p1-5.el5.i386.rpm #其中包括软件名(sudo),版本号(1.7.2pl),发行号(5.el5),和硬件平台(i386) 卸载

Linux学习总结(二十七)任务计划,系统服务管理

1 任务计划 说白了就是运行命令或者脚本的一个定时器,他可以让我们在休息时间自动给我们执行任相关任务.来看下它的配置文件:cat /etc/crontab第一行定义了 shell环境第二行定义 环境变量第三行定义了发邮件给root用户,邮件保存路径为/var/spool/mail/root/最后定义了任务内容的格式,从左到右依次为:分 时 日 月 周 命令分钟:0-59小时:0-23日期:1-31月份:1-12周:0-7 0,7都表示星期天可以指定一个范围:比如1-5 周一到周五, 也可以单独指

2016年3月7日作业 信息化基础知识、信息系统服务管理

1 信息化基础.信息系统服务管理 信息化 信息的概念存在两个基本的层次,即本体论层次和认识论层次. 1.1.3 国家信息化体系要素 国家信息化体系包括信息技术应用.信息资源.信息网络.信息技术和产业.信息化人才.信息化法规政策和标准规范6个要素 1 信息技术应用 是国家信息化建设的主阵地,是信息化体系六要素中的龙头. 2 信息资源 信息资源开发利用是国家信息化的核心任务,是国家信息化建设取得实效的关键,也是我国信息化的薄弱环节,信息资源的开发和利用的程度是称量国家信息化水平的一个重要标志. 3 

信息化基础、信息系统服务管理

一.信息化的基础知识     1.国家信息体系要素(上"应".下"技".左"人".右"规"."资源.网络"在中间):        1)信息技术应用:信息技术应用是信息化体系六要素中的龙头,是国家信息化建设的主阵地,集中体现了国家信息化建设的要求和效益        2)信息资源:信息资源的开发利用是国家信息化的核心任务,是国家信息化建设取得实效的关键,也是我国信息化的薄弱环节.信息资源的开发和利用的程度是

CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法

之前有的朋友问我,CentOS版本怎么安装python的pip,我之前给出的Ubuntu下apt-get的方法 ubuntu 需要先安装下pip吧, apt-get install python-pip 安装requests, pip install requests 但是有的朋友由于是centos的,直接 yum install pip  或者 yum install python-pip都是不行的. 其实不能yum那就直接下载编译安装呗... CentOS 6.4安装pip,CentOS安装

RedHat系列软件管理(第二版) --脚本安装

RedHat系列软件管理 --脚本安装 一.解压缩 tar -zxvf webmin-1.700.tar.gz 二.进入相关目录 cd webmin-1.700 三.如果此时执行./configure会提示configure不存在 如果在Linux中不是源代码包安装的话,则他会提供了详细的说明文档,一般是README或是INSTALL 四.查看说明文档 vi README 五.根据提示 ./setup.sh 附-卸载通过源码包安装的软件 没有卸载脚本,首先要关闭进程,然后把整个安装目录删除即可