無論是在windows下還是linux下,很多的記錄檔如果不定時刪除會充滿硬碟,所以可以分別寫個指令碼定時處理一下。
Windows下bat檔案內容如下;
| 代碼如下 |
複製代碼 |
@echo off forfiles -p "D:\servers\apache2.2\logs" -s -m *.log -d -15 -c "cmd /c del @path" forfiles -p "D:\servers\mysql\logs" -s -m *.log -d -15 -c "cmd /c del @path" |
備份
bat檔案內容為:
| 代碼如下 |
複製代碼 |
@echo copy D:work*.db E:bake1 exit |
可以將上面的目錄換成指定的目錄,*.log可以篩選一下檔案格式,-d後面的參數為負數表示多少天之前的,正數是多少天之後的。儲存成bat檔案,然後在Windows計劃任務裡面設定每天執行的時間就可以了。
Linux下面的shell檔案內容如下:
| 代碼如下 |
複製代碼 |
#!/bin/bash # 刪除30天之前的檔案 find /var/usr/nginx/logs/ -mtime +30 -type f -name \*.gz | xargs rm -f |
1. 定期備份網站代碼和檔案
指令碼web.sh
| 代碼如下 |
複製代碼 |
#!/bin/bash cd /home/wwwroot date=`date -I`; # backup website /bin/tar -cjf ./backup/website_$date.tar.bz2 website # romove old data find ./backup -type f -mtime +7 -exec rm -f {} |
指令碼原理:先進入備份目錄;然後定義日期格式;按日器執行備份;刪除舊的備份資料(7天前)。
2. 定期備份資料庫
指令碼db.sh
| 代碼如下 |
複製代碼 |
#!/bin/bash cd /home/wwwroot/backup date=`date -I`; /usr/bin/mysqldump -u root --password=123456 website > website_$date.sql /bin/gzip -9 website_$date.sql |
上述指令碼中-u後接資料庫使用者名稱, –password後接資料庫密碼,緊接著是資料庫名,>後面是備份的目錄。
gzip -9 是用最高的壓縮率把匯出的資料庫進行壓縮。
同樣的將上面的目錄換成自己指定的目錄,後面的\*.gz表示副檔名,-mtime後面的參數與上面Windows的相反,正數表示多少天之前的檔案。將上面的內容儲存成.sh並使用chmod +x 設定成可執行許可權,然後放到定時任務中去執行即可。