2018.1.29 8周1次课

八周一次课(1月29日)

10.23 linux任务计划cron

10.24 chkconfig工具

10.25 systemd管理服务

10.26 unit介绍

10.27 target介绍

10.23 linux任务计划cron

其实大部分系统管理工作都是通过定期自动执行某个脚本来完成的, 那么如何定期执行某个脚本呢? 这就要借助Linux的cron功能了

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

  • -u:表示指定某个用户,不加- u选项则为当前用户。
  • -e:表示制定计划任务。
  • -l:表示列出计划任务。
  • -r:表示删除计划任务。

这里每个字段的数字分别表示什么呢?从左到右依次为:

分钟、小时、日期、月份、星期、用户、要执行的命令行

定义计划任务:# crontab –e

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

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

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

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

  1. 要保证服务是启动状态:#systemctl start crond

查看服务是否启动:

#ps aux|grep cron

#systemctl status crond

  1. 停止服务:#systemctl stop crond

  1. 计划任务里的命令尽量写绝对路径,同时要写入到日志,正确执行追到正确执行日志里,错误日志追到到错误执行日志里

  1. 命令crontab -e实际上是打开了/var/spool/cron/username文件,在/var/spool/cron/里有对应的用户的cron。以用户名字命名的(如果用户是root,则打开的 /var/spool/cron/root)。

打开这个文件使用了vim编辑器,所以保存时在命令行模式下输人:wq即可。但是请千万不要直接去编辑那个文件,否则会出错,所以一定要使用命令crontab -e来编辑

  1. 查看已经设定的任务计划:crontab -l
  2. 删除任务计划:crontab -r,这个删除选项最好还是少用,因为它会一下子把全部计划都删除掉。如果你想只删除一条计划,可以使用-e选项进入crontab进行编辑。

10.24 chkconfig工具

Centos 6上的服务管理工具为chkconfig,Linux系统所有的预设服务都可以通过查看/etc/init.d/目录得到。

只有屈指可数的几个文件,这是因为centos 7已经不再延续centos 6版本的服务管理方案了。但是我们依然可以继续使用chkconfig这个命令。系统的预设服务都可以通过这样的命令实现:service服务名start l stop l restart。这里的服务名就是/etc/init.d/目录下的这些文件了。启动crond除了可以使用命令service crond start外, 还可以使用命令/etc/init.d/crond start。

命令chkconfig --list列出所有的服务及其每个级别的开启状态

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

这里的级别 (数字0-6)为系统启动级别 (centos 7之前版本的用法,而centos 7已经不再严格区分级别的概念了), 运行级别0、1和6被系统保留。其中0作为shutdown动作,1作为重启至单用户模式,6为重启。在一般的Linux系统实现中,都使用了2、3、4、5几个级别。在centos系统中,2表示无NFS支持的多用户模式,3表示完全多用户模式(也是最常用的级别),4保留给用户自定义,5表示图形登录方式。现在我们只是看到了各服务在每个级别下的开启状态

定义运行级别:# vi /etc/inittab

这里用--level指定级别,后面是服务名,然后是off或者on。选项--level后面还可以指定多个级别

chkconfig还有一个功能,就是可以把某个服务加入到系统服务或者删除,即可以使用"chkconfig --add服务名“或者"chkconfig --del服务名“这样的形式,并且可以在chkconfig --list的结果中查找到

增加某个服务时,首先要把这个服务加入到/etc/init.d/目录下。只有在这个目录下才能加到服务列表中。

10.25 systemd管理服务

centos 7不使用sysv而改为systemd了,这是因为systemd支持多个服务并启动,而sysv只能一个一个地启动,这样最终导致的结果是systemd方式启动会快很多。接下来的知识点也会让你觉得systemd有点复杂。我们不妨对比着chkconfig工具来学习一下systemd。

列出 systemd文件:systemctl list-unit-files

列出systemd服务:systemctl list-units --all --type=service

不加--all,不显示inactive的服务

一些常用命令:

  • systemctl enable crond.service //让服务开机启动(service可以省略)

建立了一个软链接/etc/systemd/system/multi-user.target.wants/crond.service -> /usr/lib/systemd/system/crond.service

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

移走软链接/etc/systemd/system/multi-user.target.wants/crond.service

  • systemctl status crond //查看状态

  • systemctl stop crond //停止服务
  • systemctl start crond //启动服务
  • systemctl restart crond //重启服务
  • systemctl is-enabled crond //检查服务是否开机启动

10.26 unit介绍

我们先来说一个很重要的概念一一unit

  • ls /usr/lib/systemd/system //系统所有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 --all --type=service//列出所有状态的service
  • systemctl list-units --type=service//列出状态为active的service
  • systemctl is-active crond.service //查看某个服务是否为active

10.27 target介绍

target类似centos6里面的启动级别,但target支持多个target同时启动。target其实是多个unit的组合。系统启动说白了就是启动多个unit。为了管理方便,就是使用target来管理这些unit

查看系统所有target:systemctl list-unit-files --type=target

systemctl list-dependencies multi-user.target //查看指定target下面有哪些unit

systemctl get-default //查看系统默认的target

systemctl set-default multi-user.target //设置默认的target

/etc/systemd/system/default.target就是一个软链接

一个service属于一种类型的unit

多个unit组成了一个target

一个target里面包含了多个service,你可以cat /usr/lib/systemd/system/服务名,查看[install]部分的内容,它定义了该service属于哪一个target。

原文地址:http://blog.51cto.com/415326/2066580

时间: 2024-10-28 20:05:39

2018.1.29 8周1次课的相关文章

2018.3.29 14周4次课

十四周四次课(3月29日) 16.1 Tomcat介绍 16.2 安装jdk 16.3 安装Tomcat 16.1 Tomcat介绍 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache.Sun和其他一些公司及个人共同开发而成. java程序写的网站用tomcat+jdk来运行 tomcat是一个中间件,真正起作用的,解析java脚本的是jdk jdk(java development kit)是整个ja

2018.1.9 5周2次课

五周第二次课(1月9日) 7.6 yum更换国内源 7.7 yum下载rpm包 7.8/7.9 源码包安装 7.6 yum更换国内源 1.恢复之前备份的文件 2. 进入"/etc/yum.repos.d"目录 3.删除"CentOS-Base.repo"文件 4.下载"163.repo"文件 wget http://mirrors.163.com/.help/CentOS7-Base-163.repo curl -O http://mirrors

2018.1.16 6周2次课

六周第二次课(1月16日) 9.4/9.5 sed 9.4/9.5 sed 其实grep工具的功能还不够强大,它实现的只是查找功能,而不能把查找的内容替换.以前用vim操作文档的时候,可以查找也可以替换, 但只限于在文本内部操作,而不能输出到屏幕上.sed工具以及后面要介绍的awk工具就能把替换的文本输出到屏幕上,而且还有其他更丰富的功能.sed和awk都是流式编辑器,是针对文档的行来操作的. sed  '/x/'p filename:匹配x字符 sed  -n  '/x/'p  filenam

2018.3.1 10周2次课

十周第二次课(3月1日) 11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机 11.14/11.15 Apache和PHP结合 配置httpd支持php httpd主配置文件/usr/local/apache2.4/conf/httpd.conf vim /usr/local/apache2.4/conf/httpd.conf   //修改以下4个地方 ServerName 搜索ServerName,把#ServerName www.example

2018.4.23 17周4次课

十七周4次课(4月23日) 20.20 告警系统主脚本 20.21 告警系统配置文件 20.22 告警系统监控项目 20.20 告警系统主脚本 创建告警系统的目录: [[email protected] /usr/local/sbin]# mkdir mon [[email protected] /usr/local/sbin]# ls mon  nginx_log_rotate.sh [[email protected] /usr/local/sbin]# cd mon [[email pro

2018.3.29 二周第四次课

特殊权限set_uid 概念:set_uid,当普通用户执行passwd命令时,可以**临时**拥有root权限. set_uid 该权限针对二进制**可执行文件**,如:ls passwd 如下命令,查看 [[email protected] ~]# which passwd #查看这个命令在哪/usr/bin/passwd[[email protected] ~]# ls -l /usr/bin/passwd #查看passwd文件权限-rwsr-xr-x. 1 root root 2783

2017.12.29 3周5次课

三周第五次课(12月29日) 4.5/4.6 磁盘格式化  4.7/4.8 磁盘挂载 4.9 手动增加swap空间 4.5/4.6 磁盘格式化 centos7系统支持的文件格式如下: 在/etc/filesystems里查看 "xfs"是centos7默认的文件系统,之前的版本都是"ext" 命令[mke2fs]:格式化成ext2/ext3/ext4的文件系统 常用的选项有(mkfs.ext2/ext3/ext4也适用): '-b' 分区时设定每个数据区块占用空间大

2018.2.27 9周5次课

九周第五次课(2月27日) 11.6 MariaDB安装 11.7/11.8/11.9 Apache安装 11.6 MariaDB安装 cd /usr/local/src 下载二进制安装包:wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz 解压安装包:tar -zxvf mariad

2018.4.25 18周1次课

十八周一次课(4月25日) 20.27 分发系统介绍 20.28 expect脚本远程登录 20.29 expect脚本远程执行命令 20.30 expect脚本传递参数 20.27 分发系统介绍 expect是一种能够按照脚本内容里面设定的方式与交互式程序进行"会话"的程序.根据脚本内容,Expect可以知道程序会提示或反馈什么内容以及什么是正确的应答.它是一种可以提供"分支和嵌套结构"来引导程序流程的解释型脚本语言. 我们熟知的shell编程功能虽然很强大,但是