一个bash备份脚本


1 #!/bin/bash
2
3 # This is the backup script for LessonDEV.
4 # Parameters:
5 # use --daily if you want it to run in the backgound, e.g., when used by cron,
6 # and everything will be written to log file instead of stdout
7
8 DIR=/var/www/html/lessondev
9 TARGET=/data/backups/$(date +%Y-%m-%d)-lessondev
10
11 # 0. create the target folder if not existed
12 if [ -d $TARGET ]; then
13 echo Target folder exits.
14 else
15 mkdir $TARGET
16 fi
17
18 if [ "$1" == '--daily' ]; then
19 exec 1> $TARGET/backup-log
20 exec 2> $TARGET/backup-error
21 fi
22
23
24 # 1. database
25 echo Dumping database...
26 mysqldump -Q --user=lessondev --password=lessondev --opt -B lessondev | bzip2 -c > $TARGET/database-dump_sql.bz2
27
28 # 2. scripts
29 echo
30 echo Merging scripts...
31 cd $DIR
32 tar -cjvp --file=$TARGET/php-files.tbz --exclude=file --exclude=upload *
33
34 # 3. modified in one day
35 echo
36 echo Finding files modified today...
37 ls -lfRL > $TARGET/ls-lfRL
38 find . -mtime -1 -type f -print0 | xargs -0 -r tar cfjvp $TARGET/changed-today.tbz
39
40 # 4. uploaded files, if any
41 echo
42 echo Compressing uploaded files...
43 tar cfjvp $TARGET/upload-files.tbz upload
44
45 # 5. wav files and the sort
46 echo
47 cd file
48 FILEDIR=`pwd`
49 # backup wav's only once a week, since there are too many
50 if [ `date +%a` = 'unknownMon' ]; then
51 exit 0
52 fi
53
54 for series in `ls`
55 do
56 cd $FILEDIR/$series
57 for lesson in `ls`
58 do
59 back=$TARGET/$series-$lesson.tbz
60 if [ `ls -a $lesson | wc -l` == 2 ]; then
61 echo Skipping empty $series/$lesson
62 continue
63 fi
64 if [ -f $back ]; then
65 echo Skipping existing $back
66 continue
67 fi
68 echo Processing Lesson $lesson of $series...
69 tar cjpvf $back $lesson
70 done
71 done
72
73 exit 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值