文档章节

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
粉丝 3
博文 75
码字总数 78488
作品 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
Linux设置日期时间,任务计划cron,chkconfig,systemd

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

李超小牛子
07/28
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
Day 34 linux任务计划cron

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

杉下
2017/12/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JS三元运算示例

1. topFlag=topFlag ==0?1:0; 等于 if(topFlag=00){ topFlag=1; }else if(topFlag == 1){ topFlag=0; } 2. 5>3?alert('5大'):alert('3大'); 即 if(5>3){alert('5大')}else{alert('3大')}; 注......

森火
今天
0
0
利用Slf4j的MDC跟踪方法调用链

why? 一个web项目通常提供很多URL访问地址, 项目一般都是分层处理,例如Controller——>Service——>DAO。 如果想根据日志查看用户一次请求都走了哪些方法(多数是查错误)。 如果系统是多人...

杨春炼
今天
9
0
Maven介绍及安装

Maven介绍及安装 以下内容是本人早期学习时的笔记,可能比较详实繁琐,现在复习一下Maven,顺便将内容抛出来,供大家一起学习进步。 一、Maven简介 Maven是Apache旗下的一款项目管理工具,是...

星汉
今天
0
0
小程序Aes解密

主要步骤: 1、下载AES源码(JS版) 2、在小程序中新建一个公共的文件夹,把AES源码拷贝进去(注意:需要暴露接口 module.exports = CryptoJS;) 3、添加一个用于加密解密的公共JS,可取名为...

Mr_Tea伯奕
今天
0
0
Go实现文件传输(基本传输可用)

发送端 package mainimport ("fmt""os""net""io")func SendFile(path string, connect net.Conn){file, oerr :=os.Open(path)if oerr !=nil{fmt.Println("Open", oerr)......

CHONGCHEN
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部