Linux8.5 任务计划及系统服务

Linux任务计划cron

  任务计划配置文件

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

  crontab -e  定义任务计划,不写用户,默认执行root用户

#指定任务计划
#格式  :    分       时         日       月       周     user   command
#范围  : 0-59  0-23  0-31  0-12   1-6
#可用格式  : 1-5表示一个范围1到5 ; 1,2,3表示1或者2或者3
#可用格式  :  */2表示被2整除的数字,比如小时,那就是每隔2小时,双数时间

[root@chyuanliuNJ ~]# crontab -e

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

  使用星期去确定唯一性,今年的8月16和明年的8月16星期肯定不一样。

  要保证服务的启动。  systemctl  start    crond

  查看cron服务状态。绿色则启动。  systemctl  status  crond

  切记,任务计划和shell脚本里的一切命令都用绝对路径。每写一个任务计划都要追加日志,可以保证该任务有据可查。

  备份任务计划,以用户名字命名的文件名

[root@chyuanliuNJ ~]# cat /var/spool/cron/root
0 3 * * * /bin/bash  /usr/local/sbin/123.sh  >>/tmp/123.log 2>>/tmp/123.log
[root@chyuanliuNJ ~]# crontab -l
0 3 * * * /bin/bash  /usr/local/sbin/123.sh  >>/tmp/123.log 2>>/tmp/123.log

   基本操作

#列出
[root@chyuanliuNJ ~]# crontab -l
0 3 * * * /bin/bash  /usr/local/sbin/123.sh  >>/tmp/123.log 2>>/tmp/123.log
#指定用户列出
[root@chyuanliuNJ ~]# crontab -u root -l
0 3 * * * /bin/bash  /usr/local/sbin/123.sh  >>/tmp/123.log 2>>/tmp/123.log
#删除
[root@chyuanliuNJ ~]# crontab -r
[root@chyuanliuNJ ~]# crontab -u root -l
no crontab for root

Linux系统服务管理-chkconfig

   管理服务,控制服务开机启动、指定级别启动等。centos7中已经不用,趋势移弃。

[root@chyuanliuNJ ~]# chkconfig --list

Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

aegis           0:off   1:off   2:on    3:on    4:on    5:on    6:off
agentwatch      0:off   1:off   2:on    3:on    4:on    5:on    6:off
cloudmonitor    0:off   1:off   2:on    3:on    4:on    5:on    6:off
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
php-fpm         0:off   1:off   2:on    3:on    4:on    5:on    6:off
staragentctl    0:off   1:off   2:on    3:on    4:on    5:on    6:off

  服务脚本在 /etc/init.d目录下

  停止服务

[root@chyuanliuNJ ~]# chkconfig aegis off
[root@chyuanliuNJ ~]# chkconfig --list

Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

aegis           0:off   1:off   2:off   3:off   4:off   5:off   6:off
agentwatch      0:off   1:off   2:on    3:on    4:on    5:on    6:off
cloudmonitor    0:off   1:off   2:on    3:on    4:on    5:on    6:off
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
php-fpm         0:off   1:off   2:on    3:on    4:on    5:on    6:off
staragentctl    0:off   1:off   2:on    3:on    4:on    5:on    6:off

#在某级别为开服务还是关闭服务

   指定开某服务的某级别

[root@chyuanliuNJ ~]# chkconfig aegis --level 3 on
[root@chyuanliuNJ ~]# chkconfig --list

Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

aegis           0:off   1:off   2:off   3:on    4:off   5:off   6:off
... ...
[root@chyuanliuNJ ~]# chkconfig aegis --level 245 on
[root@chyuanliuNJ ~]# chkconfig --list

Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

aegis           0:off   1:off   2:on    3:on    4:on    5:on    6:off
... ...

   在服务列表加入服务

 

 

 

Sytemd管理服务

  

systemctl  list-units  --all  --type=service
[root@chyuanliuNJ ~]# systemctl  list-units  --all  --type=service
  UNIT                       LOAD      ACTIVE   SUB     DESCRIPTION
  aegis.service              loaded    active   running LSB: aegis update.
  agentwatch.service         loaded    active   exited  SYSV: Starts and stops g
  aliyun.service             loaded    active   running auto run aliyunservice o
  apachectl.service          loaded    active   running (null)
  atd.service                loaded    active   running Job spooling tools
● auditd.service             loaded    failed   failed  Security Auditing Servic
  brandbot.service           loaded    inactive dead    Flexible Branding Servic
  cloud-config.service       loaded    active   exited  Apply the settings speci
  cloud-final.service        loaded    active   exited  Execute cloud user/final
  cloud-init-local.service   loaded    active   exited  Initial cloud-init job (
● cloud-init-upgrade.service loaded    failed   failed  cloud-init upgrade servi
  cloud-init.service         loaded    active   exited  Initial cloud-init job (
  cloudmonitor.service       loaded    active   running LSB: @app.long.name@
  cpupower.service           loaded    inactive dead    Configure CPU power rela
  crond.service              loaded    active   running Command Scheduler
  dbus.service               loaded    active   running D-Bus System Message Bus
● display-manager.service    not-found inactive dead    display-manager.service
  dracut-shutdown.service    loaded    inactive dead    Restore /run/initramfs
... ...

几个常用服务相关命令
systemctl  enable  crond.service    让服务开机启动
systemctl  disable  crond  不让开机启动
systemctl  status    crond    查看状态
systemctl  stop       crond     停止服务
systemctl   start    crond      启动服务
systemctl   restart    crond    重启服务
systemctl    is-enabled  crond   检查服务是否开机启动

  unit介绍

  系统所有unit,分有很多类型

service     系统服务,比如httpd
target     多个unit组成的组,之前
device    硬件设备
mount    文件系统挂载点
automount    自动挂载点
path    文件或路径
scope   不是由systemd启动的外部进程
slice        进程组
snapshot     systemd快照
socket    进程间通信套接字
swap      swap文件
timer     定时器
[root@chyuanliuNJ ~]# ls /usr/lib/systemd/system
arp-ethers.service
atd.service
auditd.service
autovt@.service
basic.target
basic.target.wants
blk-availability.service
bluetooth.target
brandbot.path
brandbot.service
chrony-dnssrv@.service
chrony-dnssrv@.timer
... ...

   target类似运行级别

[root@chyuanliuNJ system]# ls -l runlevel*
lrwxrwxrwx  1 root root   15 Aug 18 11:57 runlevel0.target -> poweroff.target
lrwxrwxrwx  1 root root   13 Aug 18 11:57 runlevel1.target -> rescue.target
lrwxrwxrwx  1 root root   17 Aug 18 11:57 runlevel2.target -> multi-user.target
lrwxrwxrwx  1 root root   17 Aug 18 11:57 runlevel3.target -> multi-user.target
lrwxrwxrwx  1 root root   17 Aug 18 11:57 runlevel4.target -> multi-user.target
lrwxrwxrwx  1 root root   16 Aug 18 11:57 runlevel5.target -> graphical.target
lrwxrwxrwx  1 root root   13 Aug 18 11:57 runlevel6.target -> reboot.target
... ...
#target就是多个Unit组成的一个组,形成的一个target

   unit的相关命令

[root@chyuanliuNJ system]# systemctl list-units   #列出正运行的unit
... ...
  sockets.target            loaded active active    Sockets
  swap.target               loaded active active    Swap
  sysinit.target            loaded active active    System Initialization
  timers.target             loaded active active    Timers
  systemd-tmpfiles-clean.timer loaded active waiting   Daily Cleanup of Tem

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

102 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

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

#列出所有inactive的unit
[root@chyuanliuNJ system]# systemctl list-units --all --state=inactive

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

#查看某个服务是否为active
[root@chyuanliuNJ system]# systemctl is-active crond.service
active

  target介绍

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

#一个target就是多个Unit组合,用target来管理unit,列出所有的target
[root@chyuanliuNJ system]# systemctl list-unit-files --type=target
UNIT FILE                 STATE
basic.target              static
bluetooth.target          static
cloud-config.target       static
cryptsetup-pre.target     static
cryptsetup.target         static
ctrl-alt-del.target       disabled
default.target            enabled
emergency.target          static
final.target              static
getty.target              static
graphical.target          static
halt.target               disabled
... ...

   查看指定target下面有哪些unit

[root@chyuanliuNJ system]# systemctl list-dependencies multi-user.target
multi-user.target
● ├─aegis.service
● ├─agentwatch.service
● ├─apachectl.service
● ├─atd.service
● ├─auditd.service
● ├─brandbot.path
● ├─cloud-config.service
● ├─cloud-final.service
● ├─cloud-init-local.service
... ...
#查看指定target下面有哪些unit

   查看系统默认的target

[root@chyuanliuNJ system]# systemctl get-default
multi-user.target

   设置默认的target,同样也会创建一个软链接

[root@chyuanliuNJ 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.

   一个service属于一种类型的unit,多个Unit组成了一个target,一个target里面包含了多个service

[root@chyuanliuNJ system]# cat /usr/lib/systemd/system/sshd.service
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
RestartPreventExitStatus=255

[Install]
WantedBy=multi-user.target
posted @ 2017-12-04 12:07  chyuanliu  阅读(336)  评论(0编辑  收藏  举报