天天看點

linux下備份、打包、FTP上傳的自動化SHELL腳本

linux下備份、打包、ftp上傳的自動化shell腳本。按日期分檔案夾備份,包括檔案、資料等。可以通過ftp備份到遠端伺服器實作異地備份

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

<code>#!/bin/bash</code>

<code>dd</code><code>=`</code><code>date</code> <code>-d</code><code>'1 day ago'</code> <code>+%y-%m-%d`</code>

<code>dm=`</code><code>date</code> <code>-d</code><code>'1 week ago'</code> <code>+%y-%m-%d`</code>

<code> </code> 

<code>cd</code> <code>/data/backup/files</code>

<code>if</code> <code>[ ! `</code><code>pwd</code><code>` =</code><code>'/data/backup/files'</code> <code>];</code><code>then</code>

<code> </code><code>echo</code> <code>'change file faild'</code>

<code> </code><code>exit</code> <code>0</code>

<code>fi</code>

<code>if</code> <code>[ `</code><code>date</code> <code>-d</code><code>'1 day ago'</code> <code>+%d` = 15 ];</code><code>then</code> <code>#every first day of month, backup all files</code>

<code> </code><code>tar</code> <code>--exclude www</code><code>/p_w_uploads</code> <code>--exclude www</code><code>/cache</code> <code>-c</code><code>/var/</code> <code>-czf weball.</code><code>tar</code><code>.gz www</code>

<code>else</code>

<code> </code><code>tar</code> <code>-n $dm --exclude www</code><code>/p_w_uploads</code> <code>--exclude www</code><code>/cache</code> <code>-c</code><code>/var/</code> <code>-czf web.</code><code>tar</code><code>.gz www</code>

<code>#database</code>

<code>mysqldump -ubackup -pxxxxxx --opt --default-character-</code><code>set</code><code>=gbk --add-drop-database --database mysite mysql &gt; mysql.sql</code>

<code>tar</code> <code>czf mysql.</code><code>tar</code><code>.gz mysql.sql</code>

<code>rm</code> <code>-f mysql.sql</code>

<code>#transfer to remote server</code>

<code>ftp</code> <code>-n -i &lt;&lt; eof</code>

<code>open</code> <code>ftp</code><code>.domain.com</code>

<code>user username xxxxxxxx</code>

<code>lcd</code><code>/data/backup/files</code>

<code>cd</code> <code>/</code>

<code>mkdir</code> <code>$</code><code>dd</code>

<code>cd</code> <code>$</code><code>dd</code>

<code>mput *</code>

<code>quit</code>

<code>eof</code>

<code>#delete files</code>

繼續閱讀