(no commit message)
[hombase.git] / other-sh / softbackup2.sh
blob7812937da4c68d8c2e50040feb595d6322bf7506
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] ..."
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
63 HOSTIP=192.168.1.98
64 BACKUPPATH=$HOSTIP:/cygdrive/i/back_soft
65 BACKUPCOMMAND="scp -P 443 "
67 while test $# -gt 0
69 case $1 in
70 --all | -a)
71 all=yes
73 --help | -h)
74 usage_and_exit 0
76 --version | -v)
77 version
78 exit 0
80 --kind|-k)
81 shift
82 kind=$1
84 --passwd|-p)
85 stty -echo # Turns off screen echo.
86 echo -n "Enter password:"
87 read passwd
88 stty echo # Restores screen echo.
90 --backup_path|-b)
91 shift
92 BACKUPPATH=$1
94 --backup_command|-c)
95 shift
96 BACKUPCOMMAND=$1
98 --utensil|-u)
99 shift
100 utensil_command="$utensil_command $1"
102 --write_date|-d)
103 shift
104 write_date=$i
106 --write_host|-n)
107 write_host=yes
110 error "Unrecognized option: $1"
113 break
115 esac
116 shift
117 done
119 #----------- end of phrase argument ---------------#
121 if [ $# -eq 0 -a $all != "yes" ]
122 then
123 usage_and_exit 0
126 if [ $all = "yes" ]
127 then
128 backup="autobat litestep fox vgoah_fox greenfox homey l_disk local maily utensil"
129 else
130 backup=$*
133 if [ "$write_date" = yes ]
134 then
135 d=`date +%Y-%b-%d-%H%M%S`
138 if [ "$write_host" = yes ]
139 then
140 n=`hostname`
143 for i in $backup
145 case $i in
146 autobat)
147 echo "backup autoexec.bat ..."
148 $BACKUPCOMMAND /c/autoexec.bat $BACKUPPATH/c_disk
150 litestep)
151 cd /d
152 if [ "$kind" = cpio ]
153 then
154 find LiteStep -print | grep -v .svn | cpio -oav | lzma -z > litestep$d$n.cpio.lzma
155 $BACKUPCOMMAND litestep$d$n.cpio.lzma $BACKUPPATH/d_disk
156 rm litestep$d$n.cpio.lzma
157 else
158 tar cjvf LiteStep.tar.bz2 LiteStep
159 $BACKUPCOMMAND LiteStep.tar.bz2 $BACKUPPATH/d_disk
160 rm LiteStep.tar.bz2
163 fox)
164 cd /d/prog
165 if [ "$kind" = cpio ]
166 then
167 d=`date +%Y-%b-%d-%H%M%S`
168 find fox -print | grep -v .svn | cpio -oav | lzma -z > "fox$d$n.cpio.lzma"
169 $BACKUPCOMMAND fox*.cpio.lzma $BACKUPPATH/d_prog
170 rm -f fox*.cpio.lzma
171 else
172 tar cjvf fox.tar.bz2 fox
173 $BACKUPCOMMAND *.bz2 $BACKUPPATH/d_prog
174 rm -f *.bz2
177 vgoah_fox)
178 cd /e
179 if [ "$kind" = cpio ]
180 then
181 d=`date +%Y-%b-%d-%H%M%S`
182 if [ -z $passwd ]
183 then
184 find vgoah_fox/ -print | grep -f /e/vgoah_fox/readme/fe_cpio -v | grep -v .svn | cpio -oav | lzma -z > "vgoah_fox$d$n.cpio.lzma"
185 else
186 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$n.cpio.lzma"
188 $BACKUPCOMMAND vgoah_fox*.cpio.lzma $BACKUPPATH/e_disk
189 rm -f vgoah_fox*.cpio.lzma
190 else
191 tar -cjv --exclude-from /e/vgoah_fox/readme/fe -f vgoah_fox.tar.bz2 vgoah_fox
192 $BACKUPCOMMAND vgoah_fox*.bz2 $BACKUPPATH/e_disk
193 rm -f vgoah_fox*.bz2
196 greenfox)
197 ##cd /e/vgoah_fox
198 ##gawk 'BEGIN {flag = 0;}/once start/ {flag = 1;} {if(flag == 0){print $0;}else{print substr($0,3)}} ' user.js > user2.js
199 ##cp -f user.js user.js.notonce
200 ##mv -f user2.js user.js
201 cd /e
202 if [ "$kind" = cpio ]
203 then
204 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$n.cpio.lzma"
205 $BACKUPCOMMAND green*.cpio.lzma $BACKUPPATH/e_disk
206 rm -f green*.cpio.lzma
207 else
208 tar -cjv --exclude-from /e/vgoah_fox/readme/fe_green -f green_vgoah_fox.tar.bz2 vgoah_fox
209 $BACKUPCOMMAND green*.bz2 $BACKUPPATH/e_disk
210 rm -f green*.bz2
212 ##cd vgoah_fox
213 ##mv -f user.js.notonce user.js
215 homey)
216 cd /home/lifan
217 if [ kind='cpio' ]
218 then
219 if [ -z $passwd ]
220 then
221 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"
222 else
223 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"
226 $BACKUPCOMMAND ../home*.cpio.lzma $BACKUPPATH/homey
227 rm -f ../home*.cpio.lzma
228 else
229 tar cjvf ../home.tar.bz2 --files-from home.content
230 $BACKUPCOMMAND ../home.tar.bz2 $BACKUPPATH/homey
231 rm -f ../home*.bz2
234 l_disk)
235 cd /l
236 if [ kind='cpio' ]
237 then
238 find `cat l_disk.content` -print | cpio -oav | lzma -z > l_disk$d$n.cpio.lzma
239 $BACKUPCOMMAND l_disk$d$n.cpio.lzma $BACKUPPATH/homey
240 rm -f l_disk$d$n.cpio.lzma
241 else
242 tar cjvf l_disk.tar.bz2 --files-from l_disk.content
243 $BACKUPCOMMAND l_disk.tar.bz2 $BACKUPPATH/homey
244 rm -f l_disk.tar.bz2
247 local)
248 cd /e
249 if [ "$kind" = cpio ]
250 then
251 if [ -z $passwd ]
252 then
253 find local -print | grep -v .svn | cpio -oav | lzma -z > "local$d$n.cpio.lzma"
254 else
255 find local -print | grep -v .svn | cpio -oav | lzma -z | ccrypt -K $passwd > "local$d$n.cpio.lzma"
258 $BACKUPCOMMAND local*.cpio.lzma $BACKUPPATH/homey
259 rm -f local*.cpio.lzma
260 else
261 tar cjvf local.tar.bz2 local
262 $BACKUPCOMMAND local.tar.bz $BACKUPPATH/homey
263 rm -f local.tar.bz2
266 maily)
267 cd /home/lifan
268 if [ "$kind" = cpio ]
269 then
270 if [ -z $passwd ]
271 then
272 find Mail -print | grep -v .svn | cpio -oav | lzma -z > "maily$d$n.cpio.lzma"
273 else
274 find Mail -print | grep -v .svn | cpio -oav | lzma -z | ccrypt -K $passwd > "maily$d$n.cpio.lzma"
276 $BACKUPCOMMAND "maily$d$n.cpio.lzma" $BACKUPPATH/maily
277 rm -f *.lzma
278 else
279 echo "no tar methond"
282 utensil)
283 echo $utensil_command
284 case $utensil_command in
285 *all*)
286 utensil_backup="FindAndRunRobot Everything-1.2.1.371 CintaNotes1.2 ditto-3.16.8.0 AutoHotkey Totalcmd7 Vim freeime mpui Foobar2000 IrfanView"
288 *list*)
289 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"
290 exit 0
293 utensil_backup=$utensil_command
294 esac
296 for i in $utensil_backup
298 if [ -d /d/candel/$i ]
299 then
300 cd /d/candel
301 elif [ -d /d/prog/$i ]
302 then
303 cd /d/prog
304 else
305 echo no path: $i
306 exit 267
308 find $i -print |grep -v '\(Ditto\|Everything\|Thumbs\).db$'|grep -v '.svn' | cpio -oav | lzma -z > $i$d$n.cpio.lzma
309 $BACKUPCOMMAND *.cpio.lzma $BACKUPPATH/utensil
310 rm -f *.lzma
311 done
313 esac
314 done