The BackUp

压缩备份主要文件


cd/home/

tar czf pi_home.tar.gz pi

This creates a tar archive calledpi_home.tar.gzin/home/. You should copy this file to a USB stick or transfer it to another machine on your network.

MySQL

If you have MySQL databases running on your Raspberry Pi, it would be wise to keep them backed up too. To back up a single database, use themysqldumpcommand:

mysqldump recipes>recipes.sql

This command will back up therecipesdatabase to the filerecipes.sql. Note that in this case no username and password have been supplied to themysqldumpcommand. If you do not have your MySQL credentials in a.my.cnfconfiguration file in your home folder, then supply the username and password with flags:

mysqldump-uroot-ppass recipes>recipes.sql

To restore a MySQL database from a dumpfile, pipe the dumpfile into themysqlcommand; provide credentials if necessary and the database name. Note that the database must exist, so create it first:

mysql-Bse"create database recipes"cat recipes.sql|mysql recipes

Alternatively, you can use thepvcommand (not installed by default, so install withsudo apt-get install pv) to see a progress meter as the dumpfile is processed by MySQL. This is useful for large files:

pv recipes.sql|mysql recipes

SD card image

It may be sensible for you to keep a copy of the entire SD card

image, so you can restore the whole SD card if you lose it or it becomes

corrupt. You can do this using the same method you'd use to write an

image to a new card, but in reverse.

In Linux or Mac, for example:

sudo dd bs=4Mif=/dev/sdb of=raspbian.img

This will create an image file on your PC which you can use to write to another SD card, and keep exactly the same contents and settings. To restore or clone to another card, useddin reverse:

sudo dd bs=4Mif=raspbian.img of=/dev/sdb

These files can be very large, and compress well. To compress, you can pipe the output ofddtogzipas well to get a compressed file that is significantly smaller than the original size:

sudo dd bs=4Mif=/dev/sdb|gzip>rasbian.img.gz

To restore, pipe the output ofgunziptodd:

gunzip--stdout rasbian.img.gz|sudo dd bs=4M of=/dev/sdb

See more aboutinstalling SD card images.

Automation

You could write a Bash script to perform each of these processes automatically, and even have it performed periodically usingcron.





如果您的sd卡不是标准的  你将发现dd备份会出现错误导致无法启动,或者说您备份16GB 的sd卡 恢复到8Gb的SD卡将会无法完全写入,还会破坏磁盘结构


所以我建议您使用最简单的方式tar


1. 备份系统


首先成为root用户:

$ sudo su

然后进入文件系统的根目录(当然,如果你不想备份整个文件系统,你也可以进入你想要备份的目录,包括远程目录或者移动硬盘上的目录):

# cd /

下面是我用来备份系统的完整命令:

# tar cvpzf backup.tgz –exclude=/proc –exclude=/lost+found–exclude=/backup.tgz –exclude=/mnt –exclude=/sys /

让我们来简单看一下这个命令:

“tar”当然就是我们备份系统所使用的程序了。

“cvpfz”是tar的选项,意思是“创建档案文件”、“保持权限”(保留所有东西原来的权限)、“使用gzip来减小文件尺寸”。

“backup.gz”是我们将要得到的档案文件的文件名。

“/”是我们要备份的目录,在这里是整个文件系统。

在档案文件名“backup.gz”和要备份的目录名“/”之间给出了备份时必须排除在外的目录。有些目录是无用的,例如“/proc”、“/lost+found”、“/sys”。当然,“backup.gz”这个档案文件本身必须排除在外,否则你可能会得到一些超出常理的结果。如果不把“/mnt”排除在外,那么挂载在“/mnt”上的其它分区也会被备份。另外需要确认一下“/media”上没有挂载任何东西(例如光盘、移动硬盘),如果有挂载东西,必须把“/media”也排除在外。

有人可能会建议你把“/dev”目录排除在外,但是我认为这样做很不妥,具体原因这里就不讨论了。

执行备份命令之前请再确认一下你所键入的命令是不是你想要的。执行备份命令可能需要一段不短的时间。

备份完成后,在文件系统的根目录将生成一个名为“backup.tgz”的文件,它的尺寸有可能非常大。现在你可以把它烧录到DVD上或者放到你认为安全的地方去。

在备份命令结束时你可能会看到这样一个提示:’tar: Error exit delayed from previouserrors’,多数情况下你可以忽略它。

你还可以用Bzip2来压缩文件,Bzip2比gzip的压缩率高,但是速度慢一些。如果压缩率对你来说很重要,那么你应该使用Bzip2,用“j”代替命令中的“z”,并且给档案文件一个正确的扩展名“bz2”。完整的命令如下:

# tar cvpjf backup.tar.bz2 –exclude=/proc –exclude=/lost+found–exclude=/backup.tar.bz2 –exclude=/mnt –exclude=/sys /

2. 恢复系统

在进行恢复系统的操作时一定要小心!如果你不清楚自己在做什么,那么你有可能把重要的数据弄丢,请务必小心!

接着上面的例子。切换到root用户,并把文件“backup.tgz”拷贝到分区的根目录下。

在Linux中有一件很美妙的事情,就是你可以在一个运行的系统中恢复系统,而不需要用boot-cd来专门引导。当然,如果你的系统已经挂掉不能启动了,你可以用LiveCD来启动,效果是一样的。你还可以用一个命令把Linux系统中的所有文件干掉,当然在这里我不打算给出这个命令!

使用下面的命令来恢复系统:

# tar xvpfz backup.tgz -C /

如果你的档案文件是使用Bzip2压缩的,应该用:

# tar xvpfj backup.tar.bz2 -C /

注意:上面的命令会用档案文件中的文件覆盖分区上的所有文件。

执行恢复命令之前请再确认一下你所键入的命令是不是你想要的,执行恢复命令可能需要一段不短的时间。

恢复命令结束时,你的工作还没完成,别忘了重新创建那些在备份时被排除在外的目录:

# mkdir proc

# mkdir lost+found

# mkdir mnt

# mkdir sys

等等

当你重启电脑,你会发现一切东西恢复到你创建备份时的样子了!




可能还会设计到分区表的备份还原

现在的分区如下:

Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1        2612    20980858+   7  HPFS/NTFS

/dev/sda2            2613       19458   135309127+   5  Extended

/dev/sda5            2613        6529    31463271    7  HPFS/NTFS

/dev/sda6            6530        9141    20980858+  83  Linux

/dev/sda7            9142       11753    20980858+  83  Linux

/dev/sda8           11754       19048    58593280   83  Linux

/dev/sda9           19048       19458     3289088   82  Linux swap / Solaris

备份方法:

1、备份分区表信息

sudo fdisk -l >hda.txt  #分区表信息重定向输出到文件中

2、备份MBR

linux@linux-desktop:~/ex$ sudo dd if=/dev/sda of=mbr bs=512 count=1

#输入文件/dev/sda,

输出文件mbr(自己定义),输入(出)块大小512字节,复制一次,由于mbr是512个字节,所以读取写到mbr文件中了

1+0 records in

1+0 records out

512 bytes (512 B) copied,4.0728e-05 秒,12.6 MB/秒

linux@linux-desktop:~/ex$ ls  #查看备份成功

hda.txt  mbr

主引导记录512字节,前446是程序代码,后64字节包含分区表信息,最后2字节标识是MBR

3、恢复分区表

dd if=mbr of=/dev/sda bs=1 skip=446 count=66  #输入文件mbr,输出 /dev/sda ,块大小1个字节,输入跳过446字节,恢复66个字节,看来恢复的只有66个字节

如果逻辑分区都没有了,则用fdisk 照着hda.txt的信息重分一下就行了。

顺便说一下dd命令的用法

以下来自网络,我没有测试

dd是linux下的一个非常有用的命令,作用是用指定大小的块复制一个文件,并在复制的同时进行指定的转换。

if=输入文件(input file),  如: if=/dev/sda,缺省为标准输入

of=输出文件(output file), 如: of=mbr, 缺省为标准输出

ibs=Bytes,一次读入Bytes个字节,即一个块大小为Bytes个字节

obs=Bytes, 一次写Bytes个字节,即一个块大小为Bytes个字节

bs=Bytes ,同时设置读写块的大小为Bytes字节,可代替ibs,obs

cbs=Bytes,一次转换Bytes个字节,即转换缓冲区大小

skip=blocks, 从输入文件开头跳过blocks个块后再开始复制

seek=blocks,从输出文件开头路过blocks个块后再开始复制(通常只有当输出文件是磁盘或磁带时才有效)

count=blocks, 仅复制blocks个块,块大小是ibs指定的字节数

conv=conversion[,conversion...]

用指定的参数转换文件。

转换参数:

ascii 转换 EBCDIC 为 ASCII。

ebcdic 转换 ASCII 为 EBCDIC。

ibm 转换 ASCII 为 alternate EBCDIC.

block 把每一行转换为长度为 cbs 的记录,不足部分用空格填充。

unblock 使每一行的长度都为 cbs ,不足部分用空格填充。

lcase 把大写字符转换为小写字符。

ucase 把小写字符转换为大写字符。

swab 交换输入的每对字节。

noerror 出错时不停止。

notrunc 不截短输出文件。

sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容