linux日常运维(crond,systemd,chkconfing,unit,target)

1、任务计划:crond

[[email protected] ~]# cat /etc/crontab                             (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】  用户(不写的话默认是root) 命令(这里的命令必须是绝对路径)

[[email protected] ~]# crontab -e                (修改crontab的配置文件)

0 3 * * * /bin/bash /usr/local/sbin/123.sh >>/tmp/123.log2 2>/tmp/1234.log

(每天3点钟执行/usr/local/sbin/123.sh这个脚本,正确的日志追加到/tmp/123.log下,错误的日志追加到/tmp/1234.log下。)

0 3 1-10 */2 2,5 /bin/bash  /usr/local/sbin/123.sh >>/tmp/123.log2 2>/tmp/1234.log

(双数月1-10号周二和周五的凌晨三点运行这个脚本,并追加日志)

要想让服务正常启动,则需要启动服务:

[[email protected] ~]# systemctl start crond

[[email protected] ~]# ps aux | grep cron

root       537  0.0  0.1 126236  1612 ?        Ss   07:23   0:00 /usr/sbin/crond -n

root      6506  0.0  0.1 125336  1116 ?        Ss   15:01   0:00 /usr/sbin/anacron -s

root      6625  0.0  0.0 112680   972 pts/0    S+   15:12   0:00 grep --color=auto cron

服务启动,还可以用

[[email protected] ~]# systemctl status crond                 (查看服务启动情况)

[[email protected] ~]# crontab -l                         (查看任务计划)

0 3 1-10 */2 2,5 /bin/bash  /usr/local/sbin/123.sh >>/tmp/123.log2 2>/tmp/1234.log

其实-l所查看的目录就是/var/spool/cron/(这里会有不同用户的文件名,主要是写任务计划是用户是谁的就在谁的目录下)

[[email protected] ~]# crontab -r                       (删除任务计划)

[[email protected] ~]# crontab -l

no crontab for root

二、linux系统管理chkconfing

centos6和之前的版本会用倒chkconfig,centos7时已经不用,为了兼容,我们还是要掌握

[[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:关

0级别    关机状态

1级别    单用户状态

2级别    比3少一个nfs服务

3级别    多用户模式,但是不带图像

4级别    保留级别

5级别    多用户级别。带图像

6级别    重启

[[email protected] ~]# chkconfig network off          (设置开机不启动)

[[email protected] ~]# chkconfig --level 3 network off             (设置3级别network为关闭状态)

[[email protected] ~]# chkconfig --level 345 network off            (设置3.4.5级别,network为关闭状态)

添加系统服务启动:(服务启动脚本放到必须在/etc/init.d文件下)

举例:(复制一个network的启动脚本改名为123,添加服务123.用List查看。)

删除系统服务启动:

三、systemd管理服务


centos7后,使用systemd服务,在之前使用sysv服务。chkconfig在7中也能使用,这一小节则教我们使用systemctl

[[email protected] ~]# systemctl --all --type=service     (查看所有的服务,如果去掉all,则未激活的服务不显示)

[[email protected] ~]# systemctl is-enabled crond           (检查服务是否开机启动)

enabled

[[email protected] ~]# systemctl disable crond              (不让开机启动)

Removed symlink /etc/systemd/system/multi-user.target.wants/crond.service.

[[email protected] ~]# systemctl enable crond               (设置开机启动)

Created symlink from /etc/systemd/system/multi-user.target.wants/crond.service to /usr/lib/systemd/system/crond.service.

我们不难发现,其实设置开机启动是给/usr/lib/systemd/system/crond.service.做了一个软连接/etc/systemd/system/multi-user.target.wants/crond.service。

[[email protected] ~]# ll /etc/systemd/system/multi-user.target.wants/crond.service

lrwxrwxrwx 1 root root 37 12月  4 16:16 /etc/systemd/system/multi-user.target.wants/crond.service -> /usr/lib/systemd/system/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-11-30 15:50:14 CST; 4 days ago

Main PID: 537 (crond)

CGroup: /system.slice/crond.service

└─537 /usr/sbin/crond -n

11月 30 15:50:14 litongyao systemd[1]: Started Command Scheduler.

11月 30 15:50:14 litongyao systemd[1]: Starting Command Scheduler...

11月 30 15:50:14 litongyao crond[537]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 43% if used.)

11月 30 15:50:14 litongyao crond[537]: (CRON) INFO (running with inotify support)

[[email protected] ~]# systemctl stop crond                      (停止服务)

[[email protected] ~]# systemctl start crond                      (开启服务)


四、unit介绍


在系统/usr/lib/systemd/system下存放着所有的unit

unit分为以下几个类型:

  • service 系统服务
  • target 多个unit组成的组
  • device 硬件设备
  • mount 文件系统挂载点
  • automount 自动挂载点
  • path 文件或路径
  • scope 不是由systemd启动的外部进程
  • slice 进程组
  • snapshot systemd快照
  • socket 进程间通信套接字
  • swap  swap文件
  • timer 定时器

[[email protected] ~]# cd /usr/lib/systemd/system

[[email protected] system]# ls -l runlevel*                      (会显示出来centos7的6个等级)

lrwxrwxrwx. 1 root root 15 10月 20 08:10 runlevel0.target -> poweroff.target

lrwxrwxrwx. 1 root root 13 10月 20 08:10 runlevel1.target -> rescue.target

lrwxrwxrwx. 1 root root 17 10月 20 08:10 runlevel2.target -> multi-user.target

lrwxrwxrwx. 1 root root 17 10月 20 08:10 runlevel3.target -> multi-user.target

lrwxrwxrwx. 1 root root 17 10月 20 08:10 runlevel4.target -> multi-user.target

lrwxrwxrwx. 1 root root 16 10月 20 08:10 runlevel5.target -> graphical.target

lrwxrwxrwx. 1 root root 13 10月 20 08:10 runlevel6.target -> reboot.target

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

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

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

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

[[email protected] system]# systemctl is-active crond              (查看某个服务是否为active)


五、target介绍

系统为了方便管理用target来管理unit

  • systemctl list-unit-files --type=target
  • systemctl list-dependencies multi-user.target             //查看指定target下面有哪些unit
  • systemctl get-default                             //查看系统默认的target
  • systemctl set-default multi-user.target
  • 一个service属于一种类型的unit
  • 多个unit组成了一个target
  • 一个target里面包含了多个service
  • cat /usr/lib/systemd/system/sshd.service //看[install]部分


时间: 2024-09-28 12:14:41

linux日常运维(crond,systemd,chkconfing,unit,target)的相关文章

linux日常运维基础命令

查看系统负载情况 1.w    (使用w命令查看负载情况) 查看load average 行查看1分钟负载情况 5分钟负载情况 15分钟负载情况,如果数值超过CPU核数,则说明现在CPU使用过程中有排队现象,核数不够 2.uptime    (查看当前系统负载情况) 同w命令 vmstat    (查看) 使用方法: vmstat 1 5    (每隔一秒显示linux的负载状态,一共显示5次) r:一秒内平均进程 b:有多少任务被磁盘IO,网络阻塞 swpd:有多少数据量被交换,如果swpd值

Linux日常运维小结

1. 如何看当前Linux系统有几颗物理CPU和每颗CPU的核数? 物理cpu个数:cat /proc/cpuinfo |grep -c 'physical id'CPU一共有多少核:grep -c processor /proc/cpuinfo将CPU的总核数除以物理CPU的个数,得到每颗CPU的核数. 2. 查看系统负载有两个常用的命令,是哪两个?这三个数值表示什么含义呢?两个命令分别是 w 和 uptime这三个系统负载值分别表示在1分钟.5分钟和15分钟内平均有多少个任务处于活动状态.

linux日常运维命令

修改系统时间 [[email protected] ~]# date -s "2012-11-16 10:16:00" [[email protected] ~]# clock -w 2.查看系统的内核 [[email protected] ~]#  uname–a 3.查看linux服务器物理CPU的个数 [[email protected] ~]# cat /proc/cpuinfo | grep "physicalid" | sort | uniq  | wc

linux日常运维管理

1.查看系统负载命令 w命令:主要查看cpu负载 load average:一分钟内负载 五分钟内负载 十五分钟内负载 负载跟cpu核心数有关,查看cpu核心数: # cat /proc/cpuinfo | grep 'processor' | wc -l uptime也可以显示cpu负载 2.vmstat命令 # vmstat 1 5 1代表每一秒显示一次,5代表显示五次 r列:表示一秒内运行的进程 b列:被阻塞的进程 swpd列:有多少数据被交换,单位是kb free列:剩余内存 buff列

Linux日常运维(rsync通过服务连接,linux日志,screen)

一.rsync通过服务同步 分为服务端(server1) 和客户端(server2) 服务端(server1): [[email protected] ~]# vim /etc/rsyncd.conf port=873                                   (指定哪个端口启动rsync服务,不写的话默认是873) log file=/var/log/rsync.log                      (指定日志文件) pid file=/var/run/r

Linux -日常运维-监控io性能

安装: yum install -y sysstatiostat #磁盘Linux 3.10.0-514.16.1.el7.x86_64 (mdzz) 2018年10月24日 _x8664 (1 CPU)系统版本.主机名和日期avg-cpu: 总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值Device: 各磁盘设备的IO统计信息kB_read/s :读的速度kB_read/s :写的速度 iostat 1 5 #每一秒钟显示一次,一共显示5次 iostat -xiostat

Linux -日常运维-ps

ps 查看系统进程用法: ps -elf ps auxps aux 显示所有的进程ps aux | grep nginxps -elf 和 aux差不多 USER :进程所有者PID :进程pid,杀掉进程时使用.START :启动时间TIME: 运行时间COMMAND : 进程名 STAT :进程状态D:不能中断的进程R: run状态的进程,某个时间段内使用cpuS: sleep状态的进程T: 暂停的进程 ctrl zZ: 僵尸进程<: 高优先级进程 N: 低优先级进程L: 内存中被所了内存分

Linux -日常运维-free

free :查看内存使用情况free 单位kbfree -m :单位MBfree -h #更加直观的显示单位total :总大小used: 已使用free : 剩余shared :共享buff/cache : 缓冲/缓存 缓冲: 从磁盘里读出数据,放到内存里,最后到cpu(磁盘)-->内存(缓存)-->cpu #从磁盘里对出的数据,放在内存里,这块的数据叫缓存.cpu想去获取磁盘里的数据,会临时先把数据缓存下来,放到内存里,随用随取 cpu -->内存(缓冲)-->磁盘cpu想把计

Linux -日常运维- iptables语法

iptables -nvL #列出规则cat /etc/sysconfig/iptables #若提示无此文件, yum install iptables-servicesiptables -F #清空规则 service iptables save #将刚才设置的规则保存到配置文件里 #所有操作,默认filter 表iptables -t nat -nvL //-t指定表pkts #多少个数据包bytes #数据包的字节iptables -Z 可以把计数器清零 #就是清空上面的两个值 设置防火