updte something
[hombase.git] / other-sh / softbackup2.sh
blobeceb088df0e58c1e76d1b89eadd8a19d0d7ef173
1 #!bash
3 #softbackup2.sh-- _describe_
4 #@Author: LiFan
5 #@Created: 2010-02-25-00:03
7 PATH=/bin:/usr/bin:$PATH
9 error()
11 echo "$@" 1>&2
12 usage_and_exit 1
15 # next to add all array and to generate the usage message
16 # can move this variable down to usage?
17 # all_name=???
19 usage()
21 echo "Usage: $PROGRAM [--all] [--help] [--version] [--kind tar|cpio] [--write_date|d <yes|no>]"
22 echo -e "\t[--write_host|-n] [--passwd] [--backup_path <the path>] [--backup_command <cp|scp|scp -P 443]"
23 echo -e "\t[--utensil <list|all|item>] [autobat|litestep|fox|vgoah_fox|greenfox|homey|l_disk|local|maily|bird] ..."
24 echo -e "for example"
25 echo -e "backup Totalcmd7 of utensil to path /l/local-backup:"
26 echo -e "\t softbackup2.sh -b /l/local-backup -c cp -u Totalcmd7 utensil"
27 echo -e "backup some other utensil:"
28 echo -e "\t softbackup2.sh -b /l/local-backup -c cp -u FindAndRunRobot -u Everything-1.2.1.371 -u CintaNotes1.2 -u ditto-3.16.8.0 utensil"
29 echo -e "backup home with password:"
30 echo -e "\t softbackup2.sh -b /l/local-backup -c cp -p homey"
31 echo -e "list the module of utensil"
32 echo -e "\t softbackup2.sh -u list utensil"
35 usage_and_exit()
37 usage
38 exit $1
41 version()
43 echo "$PROGRAM version $VERSION"
46 warning()
48 echo "$@" 1>&2
49 EXITCODE=$((EXITCODE + 1))
50 #EXITCODE=`expr $EXITCODE + 1`
53 EXITCODE=0
54 PROGRAM=`basename $0`
55 VERSION=1.0
56 all=no
57 kind=cpio
58 passwd=
59 utensil_command=
60 write_date=yes
61 write_host=no
62 fox_version=14
63 bird_version=10
65 HOSTIP=192.168.1.98
66 BACKUPPATH=$HOSTIP:/cygdrive/i/back_soft
67 BACKUPCOMMAND="scp -P 443 "
69 while test $# -gt 0
71 case $1 in
72 --all | -a)
73 all=yes
75 --help | -h)
76 usage_and_exit 0
78 --version | -v)
79 version
80 exit 0
82 --kind|-k)
83 shift
84 kind=$1
86 --passwd|-p)
87 stty -echo # Turns off screen echo.
88 echo -n "Enter password:"
89 read passwd
90 stty echo # Restores screen echo.
92 --backup_path|-b)
93 shift
94 BACKUPPATH=$1
96 --backup_command|-c)
97 shift
98 BACKUPCOMMAND=$1
100 --utensil|-u)
101 shift
102 utensil_command="$utensil_command $1"
104 --write_date|-d)
105 shift
106 write_date=$i
108 --write_host|-n)
109 write_host=yes
112 error "Unrecognized option: $1"
115 break
117 esac
118 shift
119 done
121 #----------- end of phrase argument ---------------#
123 if [ $# -eq 0 -a $all != "yes" ]
124 then
125 usage_and_exit 0
128 if [ $all = "yes" ]
129 then
130 backup="autobat litestep fox vgoah_fox greenfox homey l_disk local maily utensil"
131 else
132 backup=$*
135 if [ "$write_date" = yes ]
136 then
137 d=`date +%Y-%b-%d-%H%M%S`
140 if [ "$write_host" = yes ]
141 then
142 n=`hostname`
145 for i in $backup
147 case $i in
148 autobat)
149 echo "backup autoexec.bat ..."
150 $BACKUPCOMMAND /c/autoexec.bat $BACKUPPATH/c_disk
152 litestep)
153 cd /d
154 if [ "$kind" = cpio ]
155 then
156 find LiteStep -print | grep -v .svn | cpio -oav | lzma -z > litestep$d$n.cpio.lzma
157 $BACKUPCOMMAND litestep$d$n.cpio.lzma $BACKUPPATH/d_disk
158 rm litestep$d$n.cpio.lzma
159 else
160 tar cjvf LiteStep.tar.bz2 LiteStep
161 $BACKUPCOMMAND LiteStep.tar.bz2 $BACKUPPATH/d_disk
162 rm LiteStep.tar.bz2
165 fox)
166 cd /d/prog
167 if [ "$kind" = cpio ]
168 then
169 d=`date +%Y-%b-%d-%H%M%S`
170 find fox$fox_version -print | grep -v .svn | cpio -oav | lzma -z > "fox$fox_version$d$n.cpio.lzma"
171 $BACKUPCOMMAND fox$fox_version*.cpio.lzma $BACKUPPATH/d_prog/
172 rm -f fox$fox_version*.cpio.lzma
173 else
174 tar cjvf fox$fox_version.tar.bz2 fox$fox_version
175 $BACKUPCOMMAND *.bz2 $BACKUPPATH/d_prog/
176 rm -f *.bz2
179 bird)
181 cd /d/prog
182 if [ "$kind" = cpio ]
183 then
184 d=`date +%Y-%b-%d-%H%M%S`
185 find bird$bird_version -print | grep -v .svn | cpio -oav | lzma -z > "bird$bird_version$d$n.cpio.lzma"
186 $BACKUPCOMMAND bird$bird_version*.cpio.lzma $BACKUPPATH/d_prog/
187 rm -f bird$bird_version*.cpio.lzma
188 else
192 vgoah_bird)
193 cd /e
194 if [ "$kind" = cpio ]
195 then
196 d=`date +%Y-%b-%d-%H%M%S`
197 if [ -z $passwd ]
198 then
199 find vgoah_bird$bird_version/ -print | grep -f /e/vgoah_bird$bird_version/readme/fe_cpio -v | grep -v .svn | cpio -oav | lzma -z > "vgoah_bird$bird_version$d$n.cpio.lzma"
200 else
201 find vgoah_bird$bird_version/ -print | grep -f /e/vgoah_bird$bird_version/readme/fe_cpio -v | grep -v .svn | cpio -oav | lzma -z | ccrypt -ef -K "$passwd" > "vgoah_bird$bird_version$d$n.cpio.lzma"
203 $BACKUPCOMMAND vgoah_bird$bird_version*.cpio.lzma $BACKUPPATH/e_disk
204 rm -f vgoah_bird$bird_version*.cpio.lzma
205 else
209 vgoah_fox)
210 cd /e
211 if [ "$kind" = cpio ]
212 then
213 d=`date +%Y-%b-%d-%H%M%S`
214 if [ -z $passwd ]
215 then
216 find vgoah_fox$fox_version/ -print | grep -f /e/vgoah_fox$fox_version/readme/fe_cpio -v | grep -v .svn | cpio -oav | lzma -z > "vgoah_fox$fox_version$d$n.cpio.lzma"
217 else
218 find vgoah_fox$fox_version/ -print | grep -f /e/vgoah_fox$fox_version/readme/fe_cpio -v | grep -v .svn | cpio -oav | lzma -z | ccrypt -ef -K "$passwd" > "vgoah_fox$fox_version$d$n.cpio.lzma"
220 $BACKUPCOMMAND vgoah_fox$fox_version*.cpio.lzma $BACKUPPATH/e_disk
221 rm -f vgoah_fox$fox_version*.cpio.lzma
222 else
223 tar -cjv --exclude-from /e/vgoah_fox$fox_version/readme/fe -f vgoah_fox$fox_version.tar.bz2 vgoah_fox$fox_version
224 $BACKUPCOMMAND vgoah_fox$fox_version*.bz2 $BACKUPPATH/e_disk
225 rm -f vgoah_fox$fox_version*.bz2
228 greenfox)
229 ##cd /e/vgoah_fox$fox_version
230 ##gawk 'BEGIN {flag = 0;}/once start/ {flag = 1;} {if(flag == 0){print $0;}else{print substr($0,3)}} ' user.js > user2.js
231 ##cp -f user.js user.js.notonce
232 ##mv -f user2.js user.js
233 cd /e
234 if [ "$kind" = cpio ]
235 then
236 find vgoah_fox$fox_version/ -print | grep -f /e/vgoah_fox$fox_version/readme/fe_green_cpio -v | grep -v .svn | cpio -oav | lzma -z > "green_vgoah_fox$fox_version$d$n.cpio.lzma"
237 $BACKUPCOMMAND green*.cpio.lzma $BACKUPPATH/e_disk
238 rm -f green*.cpio.lzma
239 else
240 tar -cjv --exclude-from /e/vgoah_fox$fox_version/readme/fe_green -f green_vgoah_fox$fox_version.tar.bz2 vgoah_fox$fox_version
241 $BACKUPCOMMAND green*.bz2 $BACKUPPATH/e_disk
242 rm -f green*.bz2
244 ##cd vgoah_fox$fox_version
245 ##mv -f user.js.notonce user.js
248 thinbird)
249 cd /e
250 if [ "$kind" = cpio ]
251 then
252 if [ -z $passwd ]
253 then
254 find vgoah_bird$bird_version/ -print | grep -f /e/vgoah_bird$bird_version/readme/fe_thin_cpio -v | grep -v .svn | cpio -oav | lzma -z > "thin_bird$bird_version$d$n.cpio.lzma"
255 else
256 find vgoah_bird$bird_version/ -print | grep -f /e/vgoah_bird$bird_version/readme/fe_thin_cpio -v | grep -v .svn | cpio -oav | lzma -z | ccrypt -ef -K "$passwd" > "thin_bird$bird_version$d$n.cpio.lzma"
258 $BACKUPCOMMAND thin*cpio.lzma $BACKUPPATH/e_disk
259 rm -f thin*.cpio.lzma
260 else
264 greenbird)
265 cd /e
266 if [ "$kind" = cpio ]
267 then
268 find vgoah_bird$bird_version/ -print | grep -f /e/vgoah_bird$bird_version/readme/fe_green_cpio -v | grep -v .svn | cpio -oav | lzma -z > "green_bird$bird_version$d$n.cpio.lzma"
269 $BACKUPCOMMAND green*.cpio.lzma $BACKUPPATH/e_disk
270 rm -f green*.cpio.lzma
271 else
275 homey)
276 cd /home/lifan
277 if [ kind='cpio' ]
278 then
279 if [ -z $passwd ]
280 then
281 find `cat home.content` -print | grep -v .mutt/cache | grep -v .svn| grep -v rainlendar2/backups | cpio -oav | lzma -z > "../home$d$n.cpio.lzma"
282 else
283 find `cat home.content` -print | grep -v .mutt/cache | grep -v .svn| grep -v rainlendar2/backups | cpio -oav | lzma -z | ccrypt -K $passwd > "../home$d$n.cpio.lzma"
286 $BACKUPCOMMAND ../home*.cpio.lzma $BACKUPPATH/homey
287 rm -f ../home*.cpio.lzma
288 else
289 tar cjvf ../home.tar.bz2 --files-from home.content
290 $BACKUPCOMMAND ../home.tar.bz2 $BACKUPPATH/homey
291 rm -f ../home*.bz2
294 l_disk)
295 cd /l
296 if [ kind='cpio' ]
297 then
298 find `cat l_disk.content` -print | cpio -oav | lzma -z > l_disk$d$n.cpio.lzma
299 $BACKUPCOMMAND l_disk$d$n.cpio.lzma $BACKUPPATH/homey
300 rm -f l_disk$d$n.cpio.lzma
301 else
302 tar cjvf l_disk.tar.bz2 --files-from l_disk.content
303 $BACKUPCOMMAND l_disk.tar.bz2 $BACKUPPATH/homey
304 rm -f l_disk.tar.bz2
307 local)
308 cd /e
309 if [ "$kind" = cpio ]
310 then
311 if [ -z $passwd ]
312 then
313 find local -print | grep -v .svn | cpio -oav | lzma -z > "local$d$n.cpio.lzma"
314 else
315 find local -print | grep -v .svn | cpio -oav | lzma -z | ccrypt -K $passwd > "local$d$n.cpio.lzma"
318 $BACKUPCOMMAND local*.cpio.lzma $BACKUPPATH/homey
319 rm -f local*.cpio.lzma
320 else
321 tar cjvf local.tar.bz2 local
322 $BACKUPCOMMAND local.tar.bz $BACKUPPATH/homey
323 rm -f local.tar.bz2
326 maily)
327 cd /home/lifan
328 if [ "$kind" = cpio ]
329 then
330 if [ -z $passwd ]
331 then
332 find Mail -print | grep -v .svn | cpio -oav | lzma -z > "maily$d$n.cpio.lzma"
333 else
334 find Mail -print | grep -v .svn | cpio -oav | lzma -z | ccrypt -K $passwd > "maily$d$n.cpio.lzma"
336 $BACKUPCOMMAND "maily$d$n.cpio.lzma" $BACKUPPATH/maily
337 rm -f *.lzma
338 else
339 echo "no tar methond"
342 utensil)
343 echo $utensil_command
344 case $utensil_command in
345 *all*)
346 utensil_backup="FindAndRunRobot Everything-1.2.1.371 CintaNotes1.2 ditto-3.16.8.0 AutoHotkey Totalcmd7 Vim freeime mpui Foobar2000 IrfanView"
348 *list*)
349 echo -e "\tFindAndRunRobot\n\tEverything-1.2.1.371\n\tCintaNotes1.2\n\tditto-3.16.8.0\n\tAutoHotkey\n\tTotalcmd7\n\tVim\n\tfreeime\n\tmpui\n\tFoobar2000\n\tIrfanView\n"
350 exit 0
353 utensil_backup=$utensil_command
354 esac
356 for i in $utensil_backup
358 if [ -d /d/candel/$i ]
359 then
360 cd /d/candel
361 elif [ -d /d/prog/$i ]
362 then
363 cd /d/prog
364 else
365 echo no path: $i
366 exit 267
368 find $i -print |grep -v '\(Ditto\|Everything\|Thumbs\).db$'|grep -v '.svn' | cpio -oav | lzma -z > $i$d$n.cpio.lzma
369 $BACKUPCOMMAND *.cpio.lzma $BACKUPPATH/utensil
370 rm -f *.lzma
371 done
373 esac
374 done