Linux與Windows中定時備份與定時刪除某天前的檔案

來源:互聯網
上載者:User

無論是在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 設定成可執行許可權,然後放到定時任務中去執行即可。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.