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 && 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>> </code><code>/dev/null</code> <code>2>&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>> ${logfile} 2>&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 > </code><code>/dev/null</code> <code>2>&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} && </code><code>cp</code> <code>${redisdir}/${redisfile} ${redisbackupdir}</code>
<code> </code><code>cd</code> <code>${redisbackupdir} && </code><code>tar</code> <code>czf ${targz} ${redisfile} && </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 ]] && </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><<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} && </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>> ${logfile} 2>&1</code>
本文转自 xdoujiang 51CTO博客,原文链接:http://blog.51cto.com/7938217/1641646,如需转载请自行联系原作者