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

简介:

1、任务计划:crond

[root@litongyao ~]# 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) 命令(这里的命令必须是绝对路径)


[root@litongyao ~]# 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号周二和周五的凌晨三点运行这个脚本,并追加日志)


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

[root@litongyao ~]# systemctl start crond

[root@litongyao ~]# 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

服务启动,还可以用

[root@litongyao ~]# systemctl status crond                 (查看服务启动情况)

[root@litongyao ~]# 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/(这里会有不同用户的文件名,主要是写任务计划是用户是谁的就在谁的目录下)


[root@litongyao ~]# crontab -r                       (删除任务计划)

[root@litongyao ~]# crontab -l

no crontab for root


二、linux系统管理chkconfing


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

[root@litongyao ~]# 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级别    重启


[root@litongyao ~]# chkconfig network off          (设置开机不启动)

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

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


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

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

1.png

删除系统服务启动:

1.png


三、systemd管理服务


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

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

 

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

enabled

[root@litongyao ~]# systemctl disable crond              (不让开机启动)

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


[root@litongyao ~]# 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。

[root@litongyao ~]# 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


[root@litongyao ~]# 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)

[root@litongyao ~]# systemctl stop crond                      (停止服务)

[root@litongyao ~]# 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 定时器


[root@litongyao ~]# cd /usr/lib/systemd/system

[root@litongyao 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


[root@litongyao system]# systemctl list-units                  (列出正在运行的unit)

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

[root@litongyao system]# systemctl list-units --all --state=inactive   (列出inactive的unit)

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

[root@litongyao 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]部分










本文转自 小新锐 51CTO博客,原文链接:http://blog.51cto.com/13407306/2047276,如需转载请自行联系原作者
目录
相关文章
|
29天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
116 3
|
1月前
|
运维 监控 安全
盘点Linux服务器运维管理面板
随着云计算和大数据技术的迅猛发展,Linux服务器在运维管理中扮演着越来越重要的角色。传统的Linux服务器管理方式已经无法满足现代企业的需求,因此,高效、安全、易用的运维管理面板应运而生。
|
2月前
|
运维 监控 网络协议
|
1月前
|
缓存 运维 监控
【运维必备知识】Linux系统平均负载与top、uptime命令详解
系统平均负载是衡量Linux服务器性能的关键指标之一。通过使用 `top`和 `uptime`命令,可以实时监控系统的负载情况,帮助运维人员及时发现并解决潜在问题。理解这些工具的输出和意义是确保系统稳定运行的基础。希望本文对Linux系统平均负载及相关命令的详细解析能帮助您更好地进行系统运维和性能优化。
52 3
|
2月前
|
存储 运维 搜索推荐
|
2月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
66 1
|
2月前
|
运维 网络协议 安全
Linux安全运维--一篇文章全部搞懂iptables
Linux安全运维--一篇文章全部搞懂iptables
53 1
|
3月前
|
运维 监控 Linux
深入理解Linux系统运维:命令行工具的力量
【9月更文挑战第14天】在Linux的世界里,命令行工具是系统管理员的瑞士军刀。本文将带你领略命令行的魅力,从基础操作到高级技巧,让你的运维工作更加高效和精准。准备好了吗?让我们一起开启这段探索之旅!
|
2月前
|
Web App开发 运维 安全
1Panel:一个现代化、开源的 Linux 服务器运维管理面板
1Panel:一个现代化、开源的 Linux 服务器运维管理面板
106 0
|
4月前
|
图形学 开发者 存储
超越基础教程:深度拆解Unity地形编辑器的每一个隐藏角落,让你的游戏世界既浩瀚无垠又细节满满——从新手到高手的全面技巧升级秘籍
【8月更文挑战第31天】Unity地形编辑器是游戏开发中的重要工具,可快速创建复杂多变的游戏环境。本文通过比较不同地形编辑技术,详细介绍如何利用其功能构建广阔且精细的游戏世界,并提供具体示例代码,展示从基础地形绘制到植被与纹理添加的全过程。通过学习这些技巧,开发者能显著提升游戏画面质量和玩家体验。
188 3
下一篇
DataWorks