यदि आप इन 2 तथ्यों पर विचार करते हैं तो यह आपको अन्य विकल्पों के लिए खोल देगा:
- आप एक ही डिवाइस को एक साथ कई डायरेक्टरी में माउंट कर सकते हैं।
- आप
tmpfs
निर्देशिका बनाने के लिए कहीं भी माउंट बना सकते हैं ।
तो, हाँ ऐसे कई रास्ते हैं जिनका आप बैकअप नहीं लेना चाहते हैं। आप अपने प्राथमिक विभाजन को दूसरी निर्देशिका में बढ़ते हुए उनमें से अधिकांश से बचते हैं। अन्य लोग अभी भी तरह बैकअप के लिए डेटा आप नहीं चाहते होगा /tmp
, /dev
, और /var/log
।
मेरी प्रक्रिया इस तरह से हुई ...
- रास्पबेरी पाई में एसएसएच
माउंट वास्तव में मैं बैकअप लेना चाहता था
sudo mount /dev/mmcblk0p2 /tmp/root/
sudo mount -t tmpfs -o size=1m tmpfs /tmp/root/var/log/
sudo mount -t tmpfs -o size=1m tmpfs /tmp/root/dev/
sudo mount -t tmpfs -o size=1m tmpfs /tmp/root/tmp/
sudo mount /dev/mmcblk0p1 /tmp/root/boot/
- मशीन से बाहर निकलें
डेटा को ssh + tar के माध्यम से कॉपी करें
ssh pi@raspberry.local 'cd /tmp/root; sudo tar cf - * | gzip;' | pv > rpi.tgz
# NOTE: The `pv` command gives you a progress meter but can be left out.
अस्थायी आरोह निकालें
for m in /var/log/ /dev/ /boot/ /; do sudo umount /tmp/root${m}; done
एक बार जब आप परिणामों से खुश हो जाते हैं, तो आप इसे एक ही फ़ाइल में रख सकते हैं ~/backup.sh
#!/bin/bash -eu
dir=$(mktemp -d)
cleanup(){
cd /tmp/ # You can't umount or rm a directory while you are in it.
for m in /dev/ /tmp/ /var/log/ /boot/ /; do
sudo umount ${dir}${m}
done
rm -rf ${dir}
}
do_mounts(){
sudo mount /dev/mmcblk0p2 ${dir}/
sudo mount -t tmpfs -o size=1m tmpfs ${dir}/dev/
sudo mount -t tmpfs -o size=1m tmpfs ${dir}/tmp/
sudo mount -t tmpfs -o size=1m tmpfs ${dir}/var/log/
sudo mount /dev/mmcblk0p1 ${dir}/boot/
}
send_data(){
cd ${dir}; sudo tar cf - * | gzip | tee >(md5sum > /tmp/backup.md5);
}
give_feedback(){
awk '{print "MD5:", $1}' < /tmp/backup.md5 >&2
}
trap cleanup EXIT INT TERM
do_mounts
send_data
give_feedback
और कॉलिंग इस तरह से होती है ...
$ ssh pi@raspberry.local ./backup.sh | pv | tee rpi.tgz | md5sum | awk '{print "MD5:", $1}'
MD5: d3d9181374f3ec8e4e721c786eca9f71
348MB 0:04:50 [ 1.2MB/s] [ <=> ]
MD5: d3d9181374f3ec8e4e721c786eca9f71
संकेत: आप प्रयोग कर रहे हैं, को बदलने tar cf - *
के लिए tar cf - etc
अपने आप को प्रत्येक परीक्षा चलाने पर समय का एक समूह को बचाने के लिए।