起因是一個 wordpress 分到兩台主機去放,然後用 nginx 當成 route 分流,靜態檔案(html / js / css)在第一台、php 在第二台,當要進行整網站備份的時候就暈了,分別備份好像也是可行方案之一,但是完整備份呢?
對於 linux 指令不太熟悉的情況下,當然是順利地利用 Google 來解決問題。
原文網頁
要達成這個目的,利用功能強大的 find 指令就可以簡單迅速的完成。
基本的 find 命令語法如下:
find dir-name criteria action
- dir-name:指定目錄,例如搜尋 /tmp/
- criteria:指定檔案,例如 “*.sh”
- action:找到檔案後的動作,例如刪除它
假設要刪除在目前這個目錄(包含子目錄)中所有 .sh 的檔案,指令如下:
find . -name "*.sh" -exec rm -rf {} \;
或者
find . -type f -name "*.sh" -exec rm -f {} \;
上面兩個指令的差別在於,第一個指令是連目錄名稱最後是 .sh 的都會刪除掉!
說明:
- -name “FILE-TO-FIND”:檔案模板(嘖,不太會翻 pattern 的意思)
- -exec rm -rf {} \;:刪除所有找到的檔案
- -type f:只針對檔案,不處理目錄
當然,上述的命令如果你不小心用 sudo 來執行,然後指定根目錄的話,整個 OS 掛掉的機會我想會比明天出大太陽還高一些。
補充說明,如果要找檔案內包含的文字,指令如下:
find . -name "*.php" -exec grep -H "eval" {} \;