当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 13 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 一个简单的linux备份脚本
帖子发表于 : 2013-02-07 13:43 
头像

注册: 2013-02-07 11:36
帖子: 74
系统: debian wheezy
送出感谢: 5
接收感谢: 2
今天刚注册了论坛,和广大和我一样的新手朋友们分享一个我练习shell编程写的一个脚本,欢迎朋友们测试 :em02
说下这个脚本的使用方法和缺陷:假如脚本名为backup.sh,首先给它添加可执行属性:
代码:
sudo chmod +x backup.sh
。 然后在终端中输入
代码:
sudo ./backup.sh -full
可以进行完整备份,会将根目录下除/proc,/media,/mnt,/lost+found,/sys,/tmp,/run以外的所有文件打包压缩到你存放备份的路径,路径可以通过修改第16行改成你理想中的位置。众所周知,完整备份的时间很久,因此可能一个月备份两次就已经足够了,因此在其他时候可以选择只备份那些新增加的重要文件,在终端中输入
代码:
sudo ./backup.sh -add [List]
可以进行累积备份,只备份那些没有备份过的东西。说说List:当运行完完整备份后,会在备份文件夹下生成一个backup.list文件,在下次进行累计备份的时候,在add后加上backup.list的绝对路径,就可以排除完整备份中已经备份过的东西了。
当系统挂机了之后,若:
1.能进入命令行:使用
代码:
sudo tar -jxpvf backup-xxx.tar.bz2 -C /
还原系统;
2.连命令行都进不了:使用live-usb启动,手动解压备份包,然后逐个copy到系统分区下。(没有live-usb?好吧,我也不知到该怎么办了,嗯,可以借一个^_^)
这个脚本的缺陷是:1,系统中不能出现文件名中含有空格的文件;(不影响脚本运行)2,对于完整备份中备份过的,之后又经过修改但文件名未发生更改的文件,在累积备份时会跳过,以后有机会在完善。
脚本:
代码:
#!/bin/bash
#Program:
#   This script is used to backup the systems;
#   Notice that to run this script correctly you should add extra
#       arguments as other unix commands do:
#   [-full]             #make a full backup;
#   [-add] [List]       #make a incremental backup which will ex
#                            -clude the files in the List.
#Version:
#1.1  -exclude the /sys,/run,/tmp,/sys directory and caches directory.
#History:
#2013/02/05     version1.0
#2013/02/06   by Lodz
#################################################################
#Here is the varible of backup path that user can modify accordingly.
path_backup=/media/lodz/DWindows/ubackup
#################################################################
[ "$#" -lt 1 ] && echo\
    -e "\n Arguments are necessary,please view the script first"\
    && exit 0
[ ! -d $path_backup ] && echo\
    -e "\n Can't open $path_backup,make sure your backup path is correct"\
    && exit 0
#######################full backup###############################
if [ "$#" == 1 ];then
    if [ "$1" != "-full" ];then
        echo -e "\n Use '-full' to make a full backup"
        exit 0
    else
        rm -f $path_backup/backup*
        tar -jcpvf $path_backup/backup-full-`date +%Y-%m-%d`.tar.bz2\
             --exclude=/proc --exclude=/lost+found --exclude=/media \
             --exclude=/mnt --exclude=/run --exclude=/tmp\
              --exclude=/sys --exclude-caches /\
               > $path_backup/backup.list
#delete the directory including in List file.
        sed -i '/.*\/$/d' $path_backup/backup.list
    fi
#######################incremental backup#########################
elif [ "$#" == 2 ];then
    if [ "$1" == "-add" ];then
        if [ ! -f $2 ];then
            echo -e "\n There must be a file to specify exclusions"
            exit 0
        else
            sed -i '/.*\/$/d' $2
            tar -jcpvf $path_backup/backup-add-`date +%Y-%m-%d`.tar.bz2\
                 --exclude=/media --exclude=/proc --exclude=/lost+found\
                  --exclude=/mnt --exclude=/run --exclude=/tmp\
                  --exclude=/sys --exclude-caches --exclude-from=$2 / \
                   > $path_backup/backup-add-`date +%Y-%m-%d`.list
            cat $path_backup/backup-add-`date +%Y-%m-%d`.list >> $2
            sed -i '/.*\/$/d' $2
        fi
    else
        echo -e "\n Only '-full' and '-add' are supported"
        exit 0
    fi
else
    echo -e "\n Argument list too long"
fi
#####################################################################


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 一个简单的linux备份脚本
帖子发表于 : 2013-02-07 13:57 
头像

注册: 2010-06-16 1:05
帖子: 14681
地址: Tencent
系统: Mac OS X
送出感谢: 1
接收感谢: 153
厉害啊,不过我不喜欢备份。。。
小建议,可以多用function


_________________
twitter求fo:http://twitter.com/maplebeats
博客求踩:http://maplebeats.com


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 一个简单的linux备份脚本
帖子发表于 : 2013-02-07 14:22 
头像

注册: 2013-02-07 11:36
帖子: 74
系统: debian wheezy
送出感谢: 5
接收感谢: 2
枫叶饭团 写道:
厉害啊,不过我不喜欢备份。。。
小建议,可以多用function

其实我也不喜欢备份,以前系统有问题了就用u盘启动盘进入系统copy下/var/cache/apt中的更新包,然后重装系统的。只是最近编译了个openfoam,觉得不备份重装太费时间,于是就开始备份了 :em03


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 一个简单的linux备份脚本
帖子发表于 : 2013-02-07 15:04 
头像

注册: 2009-02-06 9:18
帖子: 1081
地址: 小僧乃吐蕃国大雪山大轮寺护国法师座下四大护法之西域妖僧是也
送出感谢: 0 次
接收感谢: 11
先mark后看

Sent from my Ubuntu Phone using Tapatalk 2


_________________
Laptop: i5-460m hm55 4g 320g hd5470 14'led 2.3kg (acer 4738g)
Windows XP 7 8 all in one partition.
Ubuntu 10.04 LTS
Mac OS X 10.6.7
折腾笔记
论坛随手记


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 一个简单的linux备份脚本
帖子发表于 : 2013-02-07 18:23 
头像

注册: 2008-08-13 8:48
帖子: 26396
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
厉害,支持一个。 :em11


_________________
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 一个简单的linux备份脚本
帖子发表于 : 2013-02-07 22:08 
头像

注册: 2013-02-07 11:36
帖子: 74
系统: debian wheezy
送出感谢: 5
接收感谢: 2
YeLee 写道:
厉害,支持一个。 :em11

谢谢,说的我怪不好意思的,其实很简单,只用到了正规表达式,if语句,tar和sed,目前仍处于菜鸟级别,献丑了


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 一个简单的linux备份脚本
帖子发表于 : 2013-02-08 17:36 
头像

注册: 2010-11-19 22:55
帖子: 413
送出感谢: 10
接收感谢: 1
一直用rsync备份,另外说句题外话,如果有几十个G的免费网盘给我备份一下整个系统就好了 :em06


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 一个简单的linux备份脚本
帖子发表于 : 2013-02-08 17:42 
头像

注册: 2009-07-01 16:34
帖子: 387
送出感谢: 2
接收感谢: 8
现在也不备份了,有网络不怎么担心这个问题


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 一个简单的linux备份脚本
帖子发表于 : 2013-02-08 20:43 
头像

注册: 2013-02-07 11:36
帖子: 74
系统: debian wheezy
送出感谢: 5
接收感谢: 2
NewUserFF 写道:
一直用rsync备份,另外说句题外话,如果有几十个G的免费网盘给我备份一下整个系统就好了 :em06

几十个G?还免费?我也想要一个 :em04


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 一个简单的linux备份脚本
帖子发表于 : 2013-02-08 20:46 
头像

注册: 2013-02-07 11:36
帖子: 74
系统: debian wheezy
送出感谢: 5
接收感谢: 2
442449076 写道:
现在也不备份了,有网络不怎么担心这个问题

是啊,尤其是校园网ipv6,下载个镜像10分钟都不到


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 一个简单的linux备份脚本
帖子发表于 : 2013-02-08 22:02 
头像

注册: 2010-11-19 22:55
帖子: 413
送出感谢: 10
接收感谢: 1
艾徳庄 写道:
NewUserFF 写道:
一直用rsync备份,另外说句题外话,如果有几十个G的免费网盘给我备份一下整个系统就好了 :em06

几十个G?还免费?我也想要一个 :em04

其实还是有的,百度网盘搞活动的时候就送了100G,我还领了,但是至今没怎么用,一是没linux版,只能用网页端,再就是对国内的网盘很不放心


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 一个简单的linux备份脚本
帖子发表于 : 2013-02-08 22:14 
头像

注册: 2009-07-22 22:23
帖子: 1376
送出感谢: 2
接收感谢: 4
我喜欢用用rsync备份到移动硬盘。


_________________
愿扣上你双手,至繁华浪处到沙丘。


页首
 用户资料  
 
13 楼 
 文章标题 : 一个简单的linux备份脚本
帖子发表于 : 2013-02-09 9:45 
头像

注册: 2012-02-21 22:27
帖子: 751
系统: Ubuntu12.04
送出感谢: 53
接收感谢: 1
学习一下


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 13 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译