Linux 任务计划和服务管理

Linux任务计划cron

  • crontab -u/-e/-l/-r
  • 格式: 分 时 日 月 周 user command # 可以通过配置文件查看 cat /etc/crontab
  • 文件 /var/spool/cron/username
  • 分范围0-59,时范围0-23,日范围0-31,月范围0-12,周1-6
  • 可用格式1-5表示一个范围1到5
  • 可用格式1,2,3表示1或者2或者3
  • 可用格式*/2表示被2整除的数字,比如小时,那就是每隔2小时
  • 要保证服务是启动状态
  • systemctl start crond.service
[root@test-a ~]# 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

[root@test-a ~]# crontab -e # 定时脚本内容: 10 10 10 * * /usr/bin/ls /tmp
crontab: installing new crontab

Linux 系统服务管理 — chkconfig

  • chkconfig --list # 列出所有的服务
  • chkconfig --level 3 network off
  • chkconfig --level 345 network off
  • chkconfig --del network
  • chkconfig --add network
  • 0 关机状态 1 单用户级别 2多用户模式 3多用户模式(多了nfs模式) 4保留级别 5多用户(带图形) 6 重启 (Centos7不再提倡使用级别模式)
[root@test-a ~]# 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]'.

iprdump         0:off   1:off   2:on    3:on    4:on    5:on    6:off
iprinit         0:off   1:off   2:on    3:on    4:on    5:on    6:off
iprupdate       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

[root@test-a ~]# ls /etc/init.d/  # 启动脚本路径
functions  iprdump  iprinit  iprupdate  netconsole  network  README

[root@test-a ~]# chkconfig network off
[root@test-a ~]# 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]'.

iprdump         0:off   1:off   2:on    3:on    4:on    5:on    6:off
iprinit         0:off   1:off   2:on    3:on    4:on    5:on    6:off
iprupdate       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:off   3:off   4:off   5:off   6:off

[root@test-a ~]# chkconfig network on
[root@test-a ~]# 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]'.

iprdump         0:off   1:off   2:on    3:on    4:on    5:on    6:off
iprinit         0:off   1:off   2:on    3:on    4:on    5:on    6:off
iprupdate       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

[root@test-a ~]# chkconfig --level 3 network off
[root@test-a ~]# 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]'.

iprdump         0:off   1:off   2:on    3:on    4:on    5:on    6:off
iprinit         0:off   1:off   2:on    3:on    4:on    5:on    6:off
iprupdate       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:off   4:on    5:on    6:off

[root@test-a ~]# chkconfig --level 345 network on
[root@test-a ~]# 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]'.

iprdump         0:off   1:off   2:on    3:on    4:on    5:on    6:off
iprinit         0:off   1:off   2:on    3:on    4:on    5:on    6:off
iprupdate       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

[root@test-a ~]# cd /etc/init.d/
[root@test-a init.d]# cp network testserv
[root@test-a init.d]# chkconfig --add testserv
[root@test-a init.d]# 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]'.

iprdump         0:off   1:off   2:on    3:on    4:on    5:on    6:off
iprinit         0:off   1:off   2:on    3:on    4:on    5:on    6:off
iprupdate       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
testserv        0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@test-a init.d]# chkconfig --del testserv
[root@test-a init.d]# 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]'.

iprdump         0:off   1:off   2:on    3:on    4:on    5:on    6:off
iprinit         0:off   1:off   2:on    3:on    4:on    5:on    6:off
iprupdate       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

Linux 系统服务管理 — systemd

  • systemctl list-units --all --type=service # 列出所有的服务及信息

几个常用的服务相关命令

  • systemctl enable crond.service # 让服务开机启动
  • systemctl disable crond # 不让开机启动
  • systemctl status crond # 查看服务状态
  • systemctl stop crond # 启动服务
  • systemctl start crond # 启动服务
  • systemctl restart crond # 重启服务
  • systemctl is-enabled crond # 查看服务是否开机启动
[root@test-a init.d]# systemctl enable crond.service
[root@test-a init.d]# systemctl disable crond
rm '/etc/systemd/system/multi-user.target.wants/crond.service'
[root@test-a init.d]# systemctl is-enable crond
Unknown operation 'is-enable'.
[root@test-a init.d]# systemctl is-enabled crond
disabled
[root@test-a init.d]# systemctl enable crond.service
ln -s '/usr/lib/systemd/system/crond.service' '/etc/systemd/system/multi-user.target.wants/crond.service'
[root@test-a init.d]# systemctl is-enabled crond
enabled
unit介绍

ls /usr/lib/systemd/system # 可以查看系统所有unit,分为以下类型

  • service 系统服务
  • target 多个unit组成的组
  • device 硬件设备
  • mount 文件系统挂载点
  • automount 自动挂载点
  • path 文件或路径
  • scope 不是由systemd启动的外部进程
  • slice 进程组
  • snapshot systemd 快照
  • socket 进程间通信套接字
  • swap swap文件
  • timer 定时器
[root@test-a ~]# ls /usr/lib/systemd/system/
arp-ethers.service                      remote-fs-pre.target
auditd.service                          remote-fs.target
autovt@.service                         rescue.service
avahi-daemon.service                    rescue.target
avahi-daemon.socket  
...

[root@test-a ~]# ls /usr/lib/systemd/system/runlevel*target -l # 查看centos下的7个运行模式  
lrwxrwxrwx. 1 root root 15 Sep  7 09:50 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 Sep  7 09:50 /usr/lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 Sep  7 09:50 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Sep  7 09:50 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Sep  7 09:50 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 Sep  7 09:50 /usr/lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 Sep  7 09:50 /usr/lib/systemd/system/runlevel6.target -> reboot.target

unit 相关的命令

  • systemctl list-units # 列出正在运行的unit
  • systemctl list-units --all # 列出所有,包括失败的或者inactive的
  • systemctl list-units --all --state=inactive # 列出inactive的unit
  • systemctl list-units --type=service # 列出状态为active的service
  • systemctl is-active crond.service # 查看某个服务是否为active
target 介绍

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

  • systemctl list-unit-files --type=target #查看系统中所有的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]部分
[root@test-a ~]# systemctl get-default
multi-user.target


[root@test-a ~]# cat /usr/lib/systemd/system/sshd.service
[Unit]
Description=OpenSSH server daemon
After=syslog.target network.target auditd.service

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

[Install]
WantedBy=multi-user.target   # 属于multi-user.target

转载于:https://my.oschina.net/u/996931/blog/2265183

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值