深入淺析瞭解Linux學習筆記之系統任務設定

2022-02-07 19:02:25
本篇文章給大家帶來了關於linux中系統任務設定的相關知識,其中包括系統啟動流程、系統服務、開機自啟動服務和定時任務的相關問題,希望對大家有幫助。

系統啟動流程

  • 啟動計算機的硬體(BIOS)
    • 讀取時間
    • 選擇對應的啟動模式(USB HDD EFI)
  • 如果是Linux系統,回去找/boot目錄,引導這個系統啟動
  • 計算機系統開始啟動,讀取初始化組態檔
    • vi /etc/inittab
    • 啟動時控制著計算機的執行級別runlevel
    • 0halt(關機)
      1Single user mode(單使用者模式)
      2Multiuser,without NFS(多使用者模式,但是無網路狀態)FS-->FileSystem
      3Full multiuser mode(多使用者完整版模式)
      4unused(保留模式)
      5X11(使用者介面模式)
      6reboot(重新啟動模式)
    • id:3initdefault: 預設runlevel為3
    • 以runlevel=3開始啟動對應的服務和元件
  • 開始預設引導公共的元件或者服務
    • vi /etc/rc.d/rc.sysinit
  • 開始載入對應runlevel的服務
    • vi /etc/rc3.d
      • K:關機時需要關閉的服務
      • S:啟動時需要開啟的服務
      • 數位代表了開啟或者關閉的順序
      • 所有的檔案都是軟連結(快捷方式),連結的地址為/etc/init.

  • 當啟動完畢,所有的服務


系統服務

  • 可以使用chkconfig命令檢視當前虛擬機器器的服務
  • 通過檢視可以得知不同的級別對應到每一個服務確定本次開機自動啟動
  • 開機結束後,需要使用service(CentOS6)Systemctl(CentOS7)命令控制服務的開啟或者關閉

開機自啟動服務

  • rc.local(當這個檔案有執行許可權後,開機後會自動執行)
    • 首先建立指令碼存放的資料夾
      • mkdir -p /usr/local/scripts
    • 在資料夾中建立指令碼檔案
      • vi hello.sh
      • 給予執行許可權
    • 去/etc/rc.d/rc.local檔案中新增指令碼的絕對路徑
      • 給予rc.local執行許可權

  • chkconfig
    • 先將rc.local取消執行許可權,再開始測試
      • chmod  a-x rc.local
    • 建立開機自啟動指令碼檔案
    • vi schoolntpdate.sh
    • #!/bin/bash
      #chkconfig:2345 88 99
      #description:schoolntpdate.sh
      
      ##  開機自啟動同步時間
      yum info ntp && ntpdate cn.ntp.org.cn
    • 給其設定執行許可權
      • chmod a+x schoolnptdate.sh
    • 將指令碼拷貝到 /etc/init.d目錄下
      • cp schoolntpdate.sh /etc/init.d/
    • 新增到服務
      • chkconfig --add /etc/init.d/schoolntpdate.sh
    • 重新啟動伺服器
      • reboot


定時任務

  • 在系統服務中心,crond負責週期任務
    • systemctl status crond.service
  • 新增任務,編輯當前使用者的任務列表
    • crontab -e
  • 編輯任務
    • 星 星 星 星 星  command
      分 時 日 月 周 命令
      第一列表示分鐘1~59  每分鐘用*或者*/1表示
      第二列表示小時1~23(0表示0點)
      第三列表示日期1~31
      第四列表示月份1~12
      第五列標識號星期0~6(0表示星期天)
      第六列表示要執行的命令
      
      *: 表示任何時間都,實際上就是「每」的意思。可以代表00-23小時或者00-12每月或者00-59分
      -: 表示區間,是一個範圍,00 17-19 * * * cmd,就是每天17,18,19的整點執行命令
      ,: 是分割時段,30 3,19,21 * * * cmd,就是每天凌晨3和晚上19,21的半點時刻執行命令
      /n: 表示分割,可以看成除法,*/5 * * * * cmd,每隔五分鐘執行一次
    • 30 21 * * * /usr/local/rc.d/Lighttpd restart
      #上面的例子表示每晚21:30重新啟動apache
      
      45 4 1,10,22 * * /usr/local/rc.d/Lighttpd restart
      #上面的例子表示每月1,10,22日的4:45重新啟動apache
      
      10 1 * * 6,0 /usr/local/rc.d/Lighttpd restart
      #上面的例子表示週六、週日的1:10重新啟動apache
      
      0,30 18-23 * * * /usr/local/rc.d/Lighttpd restart
      #上面的例子表示每天的18:00至23:0每隔30分鐘重新啟動apache
      
      0 23 * * 6 /usr/local/rc.d/Lighttpd restart
      #上面的例子表示每星期六的11:00重新啟動apache
      
      * */2 * * * /usr/local/rc.d/Lighttpd restart
      #上面的例子表示每兩小時重新啟動apache
      
      * 23-7/1 * * * /usr/local/rc.d/Lighttpd restart
      #上面的例子表示晚上的11點到早上的7點之間,每隔一小時重新啟動apache
      
      0 21 4 * mon-wed /usr/local/rc.d/Lighttpd restart
      #上面的例子表示每月的4號與每週一到週三的11點重新啟動apache
      
      0 4 1 jan * /usr/local/rc.d/Lighttpd restart
      #上面的例子表示一月一號的4:00重新啟動apache
      
      --(功能描述:顯示年月日時分秒)
      date "+%Y %m %d %H %M %S"
    • 重新啟動crontab,使設定生效
      • systemctl restart crond.service
    • 通過crontab -l
      • 檢視當前的定時任務
    • 檢視任務的歷史
      • vi /var/spool/mail/root
    • 清除任務
      • crontab -r
    • 測試
      • 建立一個建立資料夾的指令碼
        • #!/bin/bash
          
          dname=`date "+%Y%m%d%H%M%S"`
          mkdir -p ~/$dname
      • 新增定時任務,每一分鐘建立一個資料夾
        • crontab -e #編輯定時任務

        • systemctl restart crond.service  #重新啟動生效
        • crontab -l  #檢視當前的定時任務
      • 檢視是否建立

      • 清除任務

相關推薦:《Linux視訊教學

以上就是深入淺析瞭解Linux學習筆記之系統任務設定的詳細內容,更多請關注TW511.COM其它相關文章!