add some comment
[hombase.git] / other-sh / softbackup2.sh
blob22efec21e368b2d89e0b606d610f64c2446821b9
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]"
22 echo -e "\t[--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] ..."
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"
33 usage_and_exit()
35 usage
36 exit $1
39 version()
41 echo "$PROGRAM version $VERSION"
44 warning()
46 echo "$@" 1>&2
47 EXITCODE=$((EXITCODE + 1))
48 #EXITCODE=`expr $EXITCODE + 1`
51 EXITCODE=0
52 PROGRAM=`basename $0`
53 VERSION=1.0
54 all=no
55 kind=cpio
56 passwd=
57 utensil_command=
59 HOSTIP=192.168.1.98
60 BACKUPPATH=$HOSTIP:/cygdrive/i/back_soft
61 BACKUPCOMMAND="scp -P 443 "
63 while test $# -gt 0
65 case $1 in
66 --all | -a)
67 all=yes
69 --help | -h)
70 usage_and_exit 0
72 --version | -v)
73 version
74 exit 0
76 --kind|-k)
77 shift
78 kind=$1
80 --passwd|-p)
81 stty -echo # Turns off screen echo.
82 echo -n "Enter password:"
83 read passwd
84 stty echo # Restores screen echo.
86 --backup_path|-b)
87 shift
88 BACKUPPATH=$1
90 --backup_command|-c)
91 shift
92 BACKUPCOMMAND=$1
94 --ustensil|-u)
95 shift
96 utensil_command="$utensil_command $1"
98 -*)
99 error "Unrecognized option: $1"
102 break
104 esac
105 shift
106 done
108 #----------- end of phrase argument ---------------#
110 if [ $# -eq 0 -a $all != "yes" ]
111 then
112 usage_and_exit 0
115 if [ $all = "yes" ]
116 then
117 backup="autobat litestep fox vgoah_fox greenfox homey l_disk local maily utensil"
118 else
119 backup=$*
122 for i in $backup
124 case $i in
125 autobat)
126 echo "backup autoexec.bat ..."
127 $BACKUPCOMMAND /c/autoexec.bat $BACKUPPATH/c_disk
129 litestep)
130 cd /d
131 if [ "$kind" = cpio ]
132 then
133 find LiteStep -print | grep -v .svn | cpio -oav | lzma -z > litestep.cpio.lzma
134 $BACKUPCOMMAND litestep.cpio.lzma $BACKUPPATH/d_disk
135 rm litestep.cpio.lzma
136 else
137 tar cjvf LiteStep.tar.bz2 LiteStep
138 $BACKUPCOMMAND LiteStep.tar.bz2 $BACKUPPATH/d_disk
139 rm LiteStep.tar.bz2
142 fox)
143 cd /d/prog
144 if [ "$kind" = cpio ]
145 then
146 d=`date +%Y-%b-%d-%H%M%S`
147 find fox -print | grep -v .svn | cpio -oav | lzma -z > "fox-$d.cpio.lzma"
148 $BACKUPCOMMAND fox*.cpio.lzma $BACKUPPATH/d_prog
149 rm -f fox*.cpio.lzma
150 else
151 tar cjvf fox.tar.bz2 fox
152 $BACKUPCOMMAND *.bz2 $BACKUPPATH/d_prog
153 rm -f *.bz2
156 vgoah_fox)
157 cd /e
158 if [ "$kind" = cpio ]
159 then
160 d=`date +%Y-%b-%d-%H%M%S`
161 if [ -z $passwd ]
162 then
163 find vgoah_fox/ -print | grep -f /e/vgoah_fox/readme/fe_cpio -v | grep -v .svn | cpio -oav | lzma -z > "vgoah_fox-$d.cpio.lzma"
164 else
165 find vgoah_fox/ -print | grep -f /e/vgoah_fox/readme/fe_cpio -v | grep -v .svn | cpio -oav | lzma -z | ccrypt -ef -K "$passwd" > "vgoah_fox-$d.cpio.lzma"
167 $BACKUPCOMMAND vgoah_fox*.cpio.lzma $BACKUPPATH/e_disk
168 rm -f vgoah_fox*.cpio.lzma
169 else
170 tar -cjv --exclude-from /e/vgoah_fox/readme/fe -f vgoah_fox.tar.bz2 vgoah_fox
171 $BACKUPCOMMAND vgoah_fox*.bz2 $BACKUPPATH/e_disk
172 rm -f vgoah_fox*.bz2
175 greenfox)
176 ##cd /e/vgoah_fox
177 ##gawk 'BEGIN {flag = 0;}/once start/ {flag = 1;} {if(flag == 0){print $0;}else{print substr($0,3)}} ' user.js > user2.js
178 ##cp -f user.js user.js.notonce
179 ##mv -f user2.js user.js
180 cd /e
181 if [ "$kind" = cpio ]
182 then
183 d=`date +%Y-%b-%d-%H%M%S`
184 find vgoah_fox/ -print | grep -f /e/vgoah_fox/readme/fe_green_cpio -v | grep -v .svn | cpio -oav | lzma -z > "green_vgoah_fox-$d.cpio.lzma"
185 $BACKUPCOMMAND green*.cpio.lzma $BACKUPPATH/e_disk
186 rm -f green*.cpio.lzma
187 else
188 tar -cjv --exclude-from /e/vgoah_fox/readme/fe_green -f green_vgoah_fox.tar.bz2 vgoah_fox
189 $BACKUPCOMMAND green*.bz2 $BACKUPPATH/e_disk
190 rm -f green*.bz2
192 ##cd vgoah_fox
193 ##mv -f user.js.notonce user.js
195 homey)
196 cd /home/lifan
197 if [ kind='cpio' ]
198 then
199 d=`date +%Y-%b-%d-%H%M%S`
200 if [ -z $passwd ]
201 then
202 find `cat home.content` -print | grep -v .mutt/cache | grep -v .svn| grep -v rainlendar2/backups | cpio -oav | lzma -z > "../home-$d.cpio.lzma"
203 else
204 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.cpio.lzma"
207 $BACKUPCOMMAND ../home*.cpio.lzma $BACKUPPATH/homey
208 rm -f ../home*.cpio.lzma
209 else
210 tar cjvf ../home.tar.bz2 --files-from home.content
211 $BACKUPCOMMAND ../home.tar.bz2 $BACKUPPATH/homey
212 rm -f ../home*.bz2
215 l_disk)
216 cd /l
217 if [ kind='cpio' ]
218 then
219 find `cat l_disk.content` -print | cpio -oav | lzma -z > l_disk.cpio.lzma
220 $BACKUPCOMMAND l_disk.cpio.lzma $BACKUPPATH/homey
221 rm -f l_disk.cpio.lzma
222 else
223 tar cjvf l_disk.tar.bz2 --files-from l_disk.content
224 $BACKUPCOMMAND l_disk.tar.bz2 $BACKUPPATH/homey
225 rm -f l_disk.tar.bz2
228 local)
229 cd /e
230 if [ "$kind" = cpio ]
231 then
232 d=`date +%Y-%b-%d-%H%M%S`
233 if [ -z $passwd ]
234 then
235 find local -print | grep -v .svn | cpio -oav | lzma -z > "local-$d.cpio.lzma"
236 else
237 find local -print | grep -v .svn | cpio -oav | lzma -z | ccrypt -K $passwd > "local-$d.cpio.lzma"
240 $BACKUPCOMMAND local*.cpio.lzma $BACKUPPATH/homey
241 rm -f local*.cpio.lzma
242 else
243 tar cjvf local.tar.bz2 local
244 $BACKUPCOMMAND local.tar.bz $BACKUPPATH/homey
245 rm -f local.tar.bz2
248 maily)
249 cd /home/lifan
250 if [ "$kind" = cpio ]
251 then
252 d=`date +%Y-%b-%d-%H%M%S`
253 if [ -z $passwd ]
254 then
255 find Mail -print | grep -v .svn | cpio -oav | lzma -z > "maily-$d.cpio.lzma"
256 else
257 find Mail -print | grep -v .svn | cpio -oav | lzma -z | ccrypt -K $passwd > "maily-$d.cpio.lzma"
259 $BACKUPCOMMAND "maily-$d.cpio.lzma" $BACKUPPATH/maily
260 rm -f *.lzma
261 else
262 echo "no tar methond"
265 utensil)
266 echo $utensil_command
267 case $utensil_command in
268 all)
269 $utensil_backup="FindAndRunRobot Everything-1.2.1.371 CintaNotes1.2 ditto-3.16.8.0 AutoHotkey Totalcmd7 Vim freeime mpui Foobar2000 IrfanView"
271 *list*)
272 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"
273 exit 0
276 utensil_backup=$utensil_command
277 esac
279 for i in $utensil_backup
281 if [ -d /d/candel/$i ]
282 then
283 cd /d/candel
284 else
285 cd /d/prog
287 find $i -print | grep -v '.db' |grep -v '.svn' | cpio -oav | lzma -z > $i.cpio.lzma
288 $BACKUPCOMMAND *.cpio.lzma $BACKUPPATH/utensil
289 rm -f *.lzma
290 done
292 esac
293 done