天天看點

備份redis服務并ftp上傳(shell)

1

2

3

4

5

6

7

8

9

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

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

<code>我的部落格已遷移到xdoujiang.com請去那邊和我交流</code>

<code>一、基礎環境說明</code>

<code>1、版本</code>

<code>cat</code> <code>/etc/debian_version</code> 

<code>5.0.1</code>

<code>2、vsftpd和redis-server安裝</code>

<code>1)下載下傳redis-server的deb包</code>

<code>axel -n 10 http:</code><code>//mirror</code><code>.wh-stuttgart.net</code><code>/apt-mirror/packages</code><code>.dotdeb.org</code><code>/dists/wheezy/redis/binary-amd64/redis-server_2</code><code>.6.14-1~dotdeb.1_amd64.deb</code>

<code>2)安裝redis-server</code>

<code>dpkg -i redis-server_2.6.14-1~dotdeb.1_amd64.deb</code>

<code>3)安裝vsftpd</code>

<code>apt-get -y </code><code>install</code> <code>vsftpd</code>

<code>3、redis部配置設定置資訊</code>

<code>cat</code> <code>/etc/redis/redis</code><code>.conf|</code><code>egrep</code> <code>-</code><code>v</code> <code>"^#|^$"</code> <code>|</code><code>egrep</code> <code>"port|dbfilename|dir"</code>

<code>port 6379</code>

<code>dbfilename dump.rdb</code>

<code>dir</code> <code>/var/lib/redis</code>

<code>4、redis指令參考</code>

<code>http:</code><code>//redisdoc</code><code>.com/</code>

<code>5、ip</code>

<code>1)本機ip</code>

<code>10.1.10.133</code>

<code>2)</code><code>ftp</code><code>的ip</code>

<code>10.1.10.133 </code>

<code>二、shell腳本</code>

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

<code>#--------------------------------------------------  </code>

<code>#Created:2015-04-29</code>

<code>#Author:jimmygong</code>

<code>#Mail:[email protected]</code>

<code>#Function:backup redis &amp;&amp; ftp</code>

<code>#Version:1.0</code>

<code>#--------------------------------------------------</code>

<code>if</code> <code>[[ `</code><code>id</code> <code>-u` -</code><code>ne</code> <code>0 ]]</code>

<code>then</code>

<code>    </code><code>echo</code> <code>"sctipts need root"</code>

<code>    </code><code>exit</code> <code>1</code>

<code>fi</code>

<code>set</code> <code>-o nounset</code>

<code>localip=`</code><code>ifconfig</code> <code>eth0|</code><code>awk</code> <code>'/inet addr:/'</code><code>|</code><code>awk</code> <code>-F: </code><code>'{print $2}'</code><code>|</code><code>awk</code> <code>-F</code><code>" "</code> <code>'{print $1}'</code><code>`</code>

<code>currdate=`</code><code>date</code> <code>+%Y%m%d`</code>

<code>redisdir=</code><code>"/var/lib/redis"</code>

<code>redisfile=</code><code>"dump.rdb"</code>

<code>redisport=</code><code>"6379"</code>

<code>rediscmd=</code><code>"/usr/bin/redis-cli"</code>

<code>redisbackupdir=</code><code>"/opt/redisbackup/${currdate}"</code>

<code>redisbackuplog=</code><code>"/opt/redisbackuplog/"</code>

<code>targz=</code><code>"${localip}.${redisfile}.tar.gz"</code>

<code>ftphost=</code><code>"10.1.10.133"</code>

<code>ftpport=</code><code>"21"</code>

<code>ftpuser=</code><code>"ftpup"</code>

<code>ftppass=</code><code>"ftpup"</code>

<code>[[ -d ${redisbackupdir} ]] || </code><code>mkdir</code> <code>-p ${redisbackupdir}</code>

<code>[[ -e </code><code>/usr/bin/nmap</code> <code>]] || apt-get -y </code><code>install</code> <code>nmap --force-</code><code>yes</code> <code>&gt; </code><code>/dev/null</code> <code>2&gt;&amp;1</code>

<code>echosucc () </code>

<code>{</code>

<code>    </code><code>echo</code> <code>"Ok"</code>

<code>}</code>

<code>echofail () </code>

<code>    </code><code>echo</code> <code>"Fail"</code>

<code>function</code> <code>echoresult () </code>

<code>    </code><code>if</code> <code>[[ $? == </code><code>'0'</code> <code>]]</code>

<code>    </code><code>then</code>

<code>        </code><code>echosucc</code>

<code>    </code><code>else</code>

<code>        </code><code>echofail</code>

<code>    </code><code>fi</code>

<code>function</code> <code>exportlog ()</code>

<code>    </code><code>[[ -d ${redisbackuplog} ]] || </code><code>mkdir</code> <code>-p ${redisbackuplog}</code>

<code>    </code><code>logfile=${redisbackuplog}/${currdate}.${localip}.log</code>

<code>    </code><code>exec</code> <code>&gt; ${logfile} 2&gt;&amp;1</code>

<code>} </code>

<code>function</code> <code>bgsave () </code>

<code>    </code><code>echo</code> <code>-n </code><code>"Bgsave:"</code>

<code>    </code><code>${rediscmd} -h ${localip} -p ${redisport} bgsave &gt; </code><code>/dev/null</code> <code>2&gt;&amp;1</code>

<code>    </code><code>echoresult</code>

<code>function</code> <code>backup () </code>

<code>    </code><code>echo</code> <code>-n </code><code>"Targz:"</code>

<code>    </code><code>cd</code> <code>${redisdir} &amp;&amp; </code><code>cp</code> <code>${redisdir}/${redisfile} ${redisbackupdir}</code>

<code>    </code><code>cd</code> <code>${redisbackupdir} &amp;&amp; </code><code>tar</code> <code>czf ${targz} ${redisfile} &amp;&amp; </code><code>rm</code> <code>-f ${redisbackupdir}/${redisfile}</code>

<code>function</code> <code>ftpcheck () </code>

<code>    </code><code>echo</code> <code>-n </code><code>"FtpServer:"</code>

<code>    </code><code>nmaphost=`nmap ${ftphost} -p ${ftpport}|</code><code>grep</code> <code>"open"</code><code>|</code><code>wc</code> <code>-l`</code>

<code>    </code><code>[[ ${nmaphost} -</code><code>eq</code> <code>1 ]] &amp;&amp; </code><code>echo</code> <code>"Ok"</code>

<code>function</code> <code>ftpcmd () </code>

<code>    </code><code>file</code><code>=$1</code>

<code>    </code><code>ftp</code> <code>-</code><code>in</code><code>&lt;&lt;EOF</code>

<code>    </code><code>open</code> <code>${ftphost}</code>

<code>    </code><code>user ${ftpuser} ${ftppass}</code>

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

<code>    </code><code>mkdir</code> <code>${currdate}</code>

<code>    </code><code>cd</code> <code>${currdate}</code>

<code>    </code><code>mkdir</code> <code>${localip}</code>

<code>    </code><code>cd</code> <code>${localip}</code>

<code>    </code><code>mput ${</code><code>file</code><code>}</code>

<code>    </code><code>quit</code>

<code>EOF</code>

<code>function</code> <code>ftpputfile () </code>

<code>    </code><code>ftpcheck</code>

<code>    </code><code>echo</code> <code>-n </code><code>"FtpFile:"</code>

<code>    </code><code>cd</code> <code>${redisbackupdir}</code>

<code>    </code><code>for</code> <code>i </code><code>in</code> <code>`</code><code>ls</code><code>`</code>

<code>    </code><code>do</code>

<code>        </code><code>ftpcmd $i</code>

<code>    </code><code>done</code>

<code>function</code> <code>delete () </code>

<code>    </code><code>echo</code> <code>-n </code><code>"Delete:"</code>

<code>    </code><code>cd</code> <code>${redisbackupdir} &amp;&amp; </code><code>find</code> <code>-name </code><code>"*.tar.gz"</code> <code>-mtime +30|</code><code>xargs</code> <code>-i {} </code><code>rm</code> <code>-f</code>

<code>function</code> <code>ftpputlog () </code>

<code>    </code><code>cd</code> <code>${redisbackuplog}</code>

<code>    </code><code>mkdir</code> <code>log</code>

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

<code>    </code><code>mput ${currdate}*.log</code>

<code>exportlog</code>

<code>bgsave</code>

<code>backup</code>

<code>ftpputfile</code>

<code>delete</code>

<code>ftpputlog</code>

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

<code>=============================說明=============================================</code>

<code>執行</code><code>bash</code> <code>redis.sh</code>

<code>ll </code><code>/opt/redisbackup/20150429/</code>

<code>-rw-r--r-- 1 root root 148 2015-04-29 23:20 10.1.10.133.dump.rdb.</code><code>tar</code><code>.gz</code>

<code>ll </code><code>/opt/redisbackuplog/</code>

<code>-rw-r--r-- 1 root root 53 2015-04-29 23:20 20150429.10.1.10.133.log</code>

<code>cat</code> <code>/opt/redisbackuplog/20150429</code><code>.10.1.10.133.log </code>

<code>Bgsave:Ok</code>

<code>Targz:Ok</code>

<code>FtpServer:Ok</code>

<code>FtpFile:Ok</code>

<code>Delete:Ok</code>

<code>再看</code><code>ftp</code><code>那邊</code>

<code>ll </code><code>/opt/backup/11/20150429/10</code><code>.1.10.133/</code>

<code>-rw------- 1 ftpup ftpup 148 2015-04-29 23:20 10.1.10.133.dump.rdb.</code><code>tar</code><code>.gz</code>

<code>ll </code><code>/opt/backup/11/</code>

<code>20150429/ log/      </code>

<code>cat</code> <code>/opt/backup/11/log/20150429</code><code>.10.1.10.133.log </code>

<code>shell的内置指令指令</code><code>exec</code>

<code>exec</code> <code>&gt; ${logfile} 2&gt;&amp;1</code>

本文轉自 xdoujiang 51CTO部落格,原文連結:http://blog.51cto.com/7938217/1641646,如需轉載請自行聯系原作者