码迷,mamicode.com
首页 > 其他好文 > 详细

5月11日

时间:2018-05-12 03:16:44      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:linux

10.23 linux任务计划cron

1. linux任务计划cron

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

命令 crontab

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

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

技术分享图片 

1.2 -e:表示制定计划任务    (执行内容:01 10 05 06 3 echo "ok" > /root/cron.log)

技术分享图片 

使用 crontab -e 来进行编写任务计划,这实际上是使用vim工具打开了crontab的配置文件,我们写下如下内容:

技术分享图片 

从左到右:在125日(这一天必须是星期2)的1001分执行命令 echo “ok” > /root/cron.log

编写格式:分 时 日 月 周 user command

1.3 -l:表示列出计划任务

技术分享图片 

1.4 -r:表示删除计划任务

技术分享图片 

1.5 备份计划任务文件: 

crontab -e 实际上是打开了 “/var/spool/cron/username” (如果是root则打开的是/var/spool/cron/root)这个文件,所以不要直接去编辑那个文件,因为可能会出错,所以一定要使用 crontab -e 来编辑,另外备份的话,直接复制一份这个目录下的文件即可: 

技术分享图片 

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

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

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

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

1.6 设置好了所有的计划任务后需要查看一下crond服务是否启动或者查看进程启动

  查看crond服务是否启动命令systemctl status crond

技术分享图片 

 1.6.1查看进程是否启动命令:ps aux|grep cron

技术分享图片 

1.7 如果是停止状态,则需要启动它:

启动cron命令:systemctl start crond

停用cron命令:systemctl stop crond

技术分享图片 

练习题 :

cron的内容不算太难,但是需要你牢固掌握,阿铭给出一些练习题,帮助你熟悉这个cron的应用。

1.每天凌晨1点20分清除/var/log/slow.log这个文件

2.每周日3点执行 “/bin/sh /usr/local/sbin/backup.sh”

3.每月14号4点10分执行 “/bin/sh /usr/local/sbin/backup_month.sh”

4.每隔8小时执行 “ntpdate time.windows.com”

5.每天的1点,12点,18点执行 “/bin/sh /usr/local/sbin/test.sh”

6.每天的9点到18点执行 “/bin/sh /usr/local/sbin/test2.sh”

习题答案:

1.  20 1 * * *  echo "" >/var/log/slow.log 

2.  0 3 * * 0  /bin/sh /usr/local/sbin/backup.sh 

3.  10 4 14 * *  /bin/sh /usr/local/sbin/backup_month.sh 

4.  0 */8 * * *  ntpdate time.windows.com 

5.  0 1,12,18 * * *  /bin/sh /usr/local/sbin/test.sh

 6.  0 9-18 * * *  /bin/sh /usr/local/sbin/test2.sh

练习完上面的题目,相信你会有一些小疑问,这里要简单说一下,每隔8小时,就是用全部小时(0-23)去除以8,仔细想一下结果,其实算出来应该是0,8,16三个数。当遇到多个数(分钟、小时、月、周)例如第5题,则需要用逗号隔开。而时间段是可以用 n-m 的方式表示的,比如第六题中的(9-18)。

10.24 chkconfig工具

.chkconfig工具(系统服务管理) 

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

技术分享图片 

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

技术分享图片 

上提示翻译:

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

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

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

0 shutdown关机 

1 单用户模式 

2 NFS支持的多用户模式 

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

4 保留给用户自定义 

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

6 重启

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

 2.1 命令:chkconfig --level 3 network off  关闭3级别的network服务

技术分享图片 

 

(不加 –level 3 就是将0-6个级别都关掉)

3、命令:chkconfig –level 345 network off   (关闭3,45级别network服务)

技术分享图片 

4、命令:chkconfig network on  //省略级别默认是针对2345操作

技术分享图片 

5命令: chkconfig --del network     / /删除network服务

技术分享图片 

6chkconfig –add network  //添加network服务

技术分享图片 

10.25 systemd管理服务

 

 

 一、systemd管理服务

1、systemctl list-units –all –type=service (列出系统所有服务)

技术分享图片

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

技术分享图片

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

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

systemctl disable crond //不让开机启动

systemctl status crond //查看状态

systemctl stop crond //停止服务

systemctl start crond //启动服务

systemctl restart crond //重启服务

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

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

技术分享图片

2.2 systemctl disable crond //不让开机启动 

技术分享图片

2.3 systemctl status crond //查看状态 

技术分享图片

2.4 systemctl stop crond //停止服务 

2.5 systemctl start crond //启动服务 

2.6 systemctl restart crond //重启服务

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

10.26 unit介绍

 一、unit介绍

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

技术分享图片

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

service:系统服务

target:多个unit组成的组

device:硬件设备

mount:文件系统挂载点

automount:自动挂载点

path:文件或路径

scope:不是由systemd启动的外部进程

slice:进程组

snapshot:systemd快照

socket:进程间通信的套接字

swap:swap文件

timer:定时器

以上每种类型的文件都为一个unit,正是这些unit才组成了系统的各个资源(各个服务,各个设备等)。

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


10.27 target介绍

一、target介绍

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

1.查看当前系统所有的target

  命令:systemctl list-unit-files --type=target

技术分享图片 

2. 查看指定target下面有哪些unit 

命令:systemctl list-dependencies multi-user.target 

技术分享图片 

3.查看系统默认的target

命令:systemctl get-default

技术分享图片 

4.设置默认target

命令:systemctl set-default multi-user.target

技术分享图片 

5.运行级别

上面提到的multi-user.target等同于centos6的运行级别3。其实还有其他几个target对应

  0-6运行级别,如下所示:

技术分享图片 

6.   serviceunit以及target之间的联系

    6.1 一个service属于一种unit

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

    6.3 一个target里面包含了多个service,你可以查看/usr/lib/systemd/system/sshd.service里面【install】部分的内容,它就定义了该service属于哪一个target

技术分享图片 

 



 



5月11日

标签:linux

原文地址:http://blog.51cto.com/404006045/2115426

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!