Day 34 linux任務計劃cron

linux任務計劃cron

  • 介紹
    大部分系統工做都是經過按期執行腳原本執行,這就要藉助linux 的cron功能了
  • crontab命令
    linux的計劃功能的操做都是經過crontab命令來完成的
  • 選項
    -u:表示指定某個用戶,不加則爲當前用戶
    -e:表示指定計劃任務
    -l:表示列出計劃任務
    -r:表示刪除計劃任務
  • crontab的配置文件
    路徑:cat /etc/crontab
    • 從左至右分別是分、時、日、月、周和命令行。由於每一年的周都和日都不會相同,因此能區分是否是同一年
[root@centos001 ~]# 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

計劃任務的語法

  • 分範圍0-59,時範圍0-23,日範圍1-31,月範圍1-12,周1-7
  • 可用格式1-5表示一個範圍1到5
  • 可用格式1,2,3表示1或者2或者3
  • 可用格式*/2表示被2整除的數字,好比小時,那就是每隔2小時
  • 要保證服務是啓動狀態
0 3 1-10 */2 2,5 /bin/bash  /usr/local/sbin/123.sh > /tmp/123.sh >>/tmp/123.log>>/tmp/123.
log

檢查crond服務是否開啓

:該服務如不開啓,將不會執行計劃任務
1.開啓服務命令:sytemctl start crond
2.查看服務是否開啓命令一:ps aux |grep cron 如有最下的命令 則表示已開啓html

[root@centos001 ~]# ps aux |grep cron
root       740  0.0  0.1 126232  1676 ?        Ss   12月04   0:00 /usr/sbin/crond -n
root      6460  0.0  0.0 112676   984 pts/0    S+   01:11   0:00 grep --color=autocron

3..查看服務是否開啓命令二:systemctl status crond
linux

chkconfig工具

  • 介紹 1.centos6上的服務管理工具爲chkconfig,centos7已經再也不延續6的服務管理方案了 2.linxu曉得全部系統預設服務均可已經過查看ls /etc/init.d/獲得
[root@centos001 ~]# ls /etc/init.d/
functions  netconsole  network  README
  • chkconfig --list命令
    列出全部的服務及每一個級別的開啓狀態
[root@centos001 ~]# 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.6)爲系統的啓動級別(7以前的用法),0、1和6被系統保留。
    其中0做爲shutdown動做,1做爲重啓至單用戶模式,6爲重啓。
    通常的linux系統實現中,都使用了二、三、四、5幾個級別。
    2別哦是無NFS支持的多用戶模式,3表示徹底多用戶模式(最經常使用),4表示保留個用戶自定義,5表示圖形登陸方式
  • 更改某級別下的開啓狀態
    • 指定某個級別是關閉仍是開啓,固然但是多級別
[root@centos001 ~]# chkconfig --level 3 network off 
[root@centos001 ~]# 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:關[root@centos001 ~]# chkconfig --level 345 network off
[root@centos001 ~]# 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:關
	2:開	3:關	4:開	5:開	6:關
  • 省略級別,默認是針對級別二、三、四、5的操做
  • 把某個服務加入系統或刪除
chkconfig --del network
 chkconfig --add network

systemd管理服務

  • 介紹 systemd服務管理是在centos7中的,支持多個服務併發啓動
    • 列出系統全部的服務
      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 //檢查服務是否開機啓動

unit

  • 所在目錄 /usr/lib/systemd/system/
  • 文件類型 service 系統服務
    target 多個unit組成的組
    device 硬件設備
    mount 文件系統掛載點
    automount 自動掛載點
    path 文件或路徑
    scope 不是由systemd啓動的外部進程
    slice 進程組
    snapshot systemd快照
    socket 進程間通訊套接字
    swap swap文件
    timer 定時器
  • 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
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]部分centos

擴展

  1. anacron
    http://blog.csdn.net/strikers1982/article/details/4787226bash

  2. xinetd服(默認機器沒有安裝這個服務,須要yum install xinetd安裝)
    http://blog.sina.com.cn/s/blog_465bbe6b010000vi.html併發

  3. systemd自定義啓動腳本
    http://www.jb51.net/article/100457.htmssh

相關文章
相關標籤/搜索