學習這些linux的「自動化」輕鬆搞定任務
linux系統的web網站在運作狀態時,我們常需要對網站進行維護,例如查看資源剩餘並做出回應、日誌分割、資料整理,在特定狀態執行特定任務等等,這些都會需要linux能實現自動執行某些任任務。本篇部落格文章介紹如何進行常見的linux自動化任務。

linux的「自動化」
實現「自動化」有以下好處:
節省人力,一個腳本就夠了。
在夜晚自動執行可以避開網站流量高峰期,不影響網站白天的效率。
準確,設定完善的情況下,不會出錯。
當然最重要的還是省心了,不用頻繁的敲某些指令了。
開機啟動
#開機啟動應該是我們很常的需求了,我們常需要在開機時就自動執行某些命令來開啟服務,進程等,有了它我們不必再在每次開機時輸入同一堆命令。
chkconfig指令
#使用chkconfig指令可以在設定在不同啟動等級下啟動特定的服務或是程式。
先說一下linux的運行等級:
等級0表示:表示關機
等級1表示:單一使用者模式
等級2表示:無網路連線的多用戶命令列模式
等級3表示:有網路連線的多用戶命令列模式
等級4表示:不可用
等級5表示:帶有圖形介面的多用戶模式
等級6表示:重新啟動
chkconfig的命令如下:
chkconfig --list //命令查看已设置的开启自启动列表。 xxxd 0:off 1:off 2:on ... 6:off //list的结果,表示在xxxd服务在启动级别为2 3 4 5 的情况下会自动启动。 chkconfig --add xxxd//向任务列表中添加一个xxxd服务 chkconfig [--level 1/2/../6] xxxd on/off//设置xxxd用服务在n状态为开/关,[]内省略则在2345级别开启 chkconfig --del xxxd //将任务列表中的xxxd服务删除
rc.d檔的編輯
也可以直接編輯/etc/rc.d/目錄下的檔案來實現開機自啟動。此目錄下有很多文件,rcn.d是在啟動狀態為n的情況下的啟動資料夾,rc、rc.sysinit、init.d都是系統的模組或系統設定的自啟動文件[夾]。
我們用vim rc.local 編輯 rc.local文件,來自訂自己的自啟動方案。命令十分簡單,就像平常在操作一樣。如/usr/local/apache/bin/apachectl start表示開機自啟動apache伺服器。
at實作定時任務
#at是一個簡單的功能簡單的定時任務程序,它只能進行一次性的定時任務,其用法如下:
#at time //at加时间启动at命令 at>operation //输入要执行的操作 at>Ctrl+D //按Ctrl+D退出命令编辑
其time的常見形式如下
at H:m tomorrow //第二天的H点m分 at now + n minutes/hours/days/weeks //在n分/时/天/周后 at midnight //在午夜=-= at H:m pm/am //在当天上午/下午的H点m分
我們也可以在/var/spool/at檔案中查看at的目前指令。另外要注意的是,linux預設atd進程關閉狀態,需要手動開啟。
crontab實作定時任務
linux內建的cron流程能幫我們實作這些需求,cron搭配shell腳本,非常複雜的指令也沒問題。
cron介紹
#cron守護程式是一個由實用程式和設定檔組成的小型子系統,在幾乎所有類別 UNIX 系統上都可以找到某種風格的cron,我們可以用ps aux|grep cron找到crond這個守護程式。
我們常用的是crontab指令是cron table的簡寫,它是cron的設定文件,也可以叫它作業列表,我們可以在以下資料夾內找到相關設定檔。
/var/spool/cron/ 目錄下存放的是每個使用者包含root的crontab任務,每個任務以創建者的名字命名。
/etc/crontab 這個檔案負責調度各種管理和維護任務。
/etc/cron.d/ 這個目錄用來存放任何要執行的crontab檔案或腳本。
我們也可以把腳本放在/etc/con.hourly、/etc/con.daily、/etc/con.weekly、/etc/con.monthly目錄中,讓它每小時/天/星期、月執行一次。
crontab的使用
#我們常用的指令如下:
crontab [-u username] //省略用户表表示操作当前用户的crontab -e (编辑工作表) -l (列出工作表里的命令) -r (删除工作作)
我們用crontab -e進入目前使用者的工作表編輯,是常見的vim介面。每行是一條命令。
crontab的指令構成為 時間 動作,其時間有分、時、日、月、週五種,操作符有
* 取值範圍內的所有數字
/ 每過多少個數字
– 從X到Z
,雜湊數字
以下是幾個例子。
时间 注释 0 0 25 12 * //在12月25日的0时0分 */5 * * * * //每过5分钟 * 4-6 * * * //每天的4 5 6点 * * * * 2,5 //每周二和周五
搭配簡單的shell腳本
#如果我們的指令有邏輯判斷等非常複雜的操作時,再直接編輯crontab就有點困難了,這時,我們可以使用shell腳本。其來歷,分類定義與題不符,不再多說,我們直接說它的用法。
我們用vim /usr/sh/test.sh來使用vim編輯一個shell腳本
#!/bin/sh //声明开始shell脚本 a = "hello world" //定义一个shell变量 echo $a //熟悉的echo,输出a变量
然後crontab -e編輯crontab,新增*/5 * * * * /usr/sh/test.sh每隔五分鐘執行一次test.sh腳本,也可以用/phppath/php /filepath/test.php來用php進程來執行php程式。
如果您覺得本博文對您有幫助,您可以推薦或關注我,如果您有什麼問題,可以在下方留言討論,謝謝。
以上是學習這些linux的「自動化」輕鬆搞定任務的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

VS Code擴展安裝失敗的原因可能包括:網絡不穩定、權限不足、系統兼容性問題、VS Code版本過舊、殺毒軟件或防火牆干擾。通過檢查網絡連接、權限、日誌文件、更新VS Code、禁用安全軟件以及重啟VS Code或計算機,可以逐步排查和解決問題。

VS Code 可以在 Mac 上使用。它具有強大的擴展功能、Git 集成、終端和調試器,同時還提供了豐富的設置選項。但是,對於特別大型項目或專業性較強的開發,VS Code 可能會有性能或功能限制。

Visual Studio Code (VSCode) 是一款跨平台、開源且免費的代碼編輯器,由微軟開發。它以輕量、可擴展性和對眾多編程語言的支持而著稱。要安裝 VSCode,請訪問官方網站下載並運行安裝程序。使用 VSCode 時,可以創建新項目、編輯代碼、調試代碼、導航項目、擴展 VSCode 和管理設置。 VSCode 適用於 Windows、macOS 和 Linux,支持多種編程語言,並通過 Marketplace 提供各種擴展。它的優勢包括輕量、可擴展性、廣泛的語言支持、豐富的功能和版

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

VS Code 全稱 Visual Studio Code,是一個由微軟開發的免費開源跨平台代碼編輯器和開發環境。它支持廣泛的編程語言,提供語法高亮、代碼自動補全、代碼片段和智能提示等功能以提高開發效率。通過豐富的擴展生態系統,用戶可以針對特定需求和語言添加擴展程序,例如調試器、代碼格式化工具和 Git 集成。 VS Code 還包含直觀的調試器,有助於快速查找和解決代碼中的 bug。
