Fra*_*ela 7 linux ssh backup dd raspberry-pi
我通过 ssh 使用 gzip 压缩从另一台 Linux 计算机上“实时”备份我的树莓派。我使用这个脚本:
#!/bin/bash
dt=`date +%y%m%d`
ssh pi@192.168.1.141 "sudo dd if=/dev/mmcblk0 bs=1M | gzip -" | dd of=./pibackup-$dt.gz
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但生成的文件是 26Gb,这太多了(我认为)。我只想备份系统的内容,而不备份空闲集群。我知道 dd 会进行整个备份,包括空闲集群,但我认为通过使用 gzip 我可以减小生成文件的大小。
因此,当我输入 df -h 时,请查看我的系统:
Filesystem Size Used Avail Use% Mounted on
/dev/root 29G 3.1G 24G 12% /
devtmpfs 459M 0 459M 0% /dev
tmpfs 464M 0 464M 0% /dev/shm
tmpfs 464M 49M 415M 11% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 464M 0 464M 0% /sys/fs/cgroup
/dev/mmcblk0p1 253M 52M 201M 21% /boot
tmpfs 93M 0 93M 0% /run/user/1000
/dev/sda1 932G 184G 749G 20% /media/HDD
Run Code Online (Sandbox Code Playgroud)
“冷”备份比“活”备份安全得多。
在正在运行的 PI 上,运行以下命令
cd $HOME; dd if=/dev/zero of=zero bs=8M; rm zero
Run Code Online (Sandbox Code Playgroud)
它将在所有可用空间上写入零,这将提供高压缩率。然后将树莓派的microSD放到另一个系统上,例如运行ubuntu的桌面上并运行
fdisk -l
Run Code Online (Sandbox Code Playgroud)
我将 microSD 视为 /dev/sdb,然后以下命令将使用以下命令压缩整个 SD:
gzip -c /dev/sdb > /backup/raspberry-pi.gz
Run Code Online (Sandbox Code Playgroud)
要恢复,请运行以下命令:
gzip -cd /backup/raspberry-pi.gz > /dev/sdb
Run Code Online (Sandbox Code Playgroud)
建议在尝试上述过程之前先进行完整备份。