天天看点

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>

继续阅读