yew6n-aaaaa-aaaad-qaqrq-cai.icp0.io
Open in
urlscan Pro
2a0b:21c0:b002:2:5000:53ff:feb3:7feb
Public Scan
URL:
https://yew6n-aaaaa-aaaad-qaqrq-cai.icp0.io/Linux-backup/index.html
Submission: On December 18 via api from US — Scanned from CH
Submission: On December 18 via api from US — Scanned from CH
Form analysis
1 forms found in the DOMName: search —
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required="">
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path>
</svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path>
</svg>
</button>
</nav>
</form>
Text Content
Skip to content notebook Linux-backup Type to start searching GitHub * 186 * 27 notebook GitHub * 186 * 27 * Home * Python Python * Python * Gist Python一些常用代码片段 * Course Python程序设计 * Programming Languages Programming Languages * BASH * BAT批处理 * C语言 * Java Java * Java * S2-045 * JavaScript * PHP * Web Web * CDN * cURL * Favorites Favorites * Favorites * Github Project Recommendation * 更多链接 * Flask * MySQL * Nginx * RabbitMQ * Development Development * Developer * Docker * ETH * Git * Jekyll * Paper Reading * WindowsSoftware * Fuzzing Fuzzing * DFSan * Fun Fun * Bitcoin * Linux Linux * Linux-backup Linux-backup Table of contents * Demo * 用rsync代替scp * tar备份整个系统 * 使用rsync像time machine一样全盘备份 * rsync备份到非root用户的目标机器上 * rsync备份安卓手机 * Linux-setup * Linux-SSH * Linux-cli * Linux-VirtualBox * Ubuntu * My Projects My Projects * ZJU grs helper * CCF Badge Table of contents * Demo * 用rsync代替scp * tar备份整个系统 * 使用rsync像time machine一样全盘备份 * rsync备份到非root用户的目标机器上 * rsync备份安卓手机 备份 备份 备份!¶ 一个良好安全的备份计划至关重要,备份脚本应该导出数据库、压缩日志和动态产生的数据文件,加密后上传至其他服务器或CDN -------------------------------------------------------------------------------- DEMO¶ 下面的例子涉及到date、docker、tar、zip、七牛qshell命令的使用 # !/bin/bash pushd 工作目录 d=`date +%Y%m%d` mkdir bakup$d cd bakup$d (docker exec 容器名称 mysqldump -p密码 数据库名称) >database.sql tar cvzf log.tar.gz ../log # 压缩log目录 cd ../ # 使用zip加密压缩,压缩后删除原文件 zip -r -P 压缩密码 -m bakup$d.zip bakup$d/ # 使用七牛的qshell上传备份文件,运行前需要配置账号qshell account 你的AK 你的SK # 下面这条命令表示将bakup$d.zip上传,CDN上存储的文件名为$d.zip ./qshell fput 你的bucket的名称 $d.zip bakup$d.zip # 如果你放心可以本地彻底删掉备份文件: # rm -r bakup$d.zip -------------------------------------------------------------------------------- 用RSYNC代替SCP¶ rsync可以断点续传,不如就用rsync代替scp 参考:https://www.digitalocean.com/community/tutorials/how-to-copy-files-with-rsync-over-ssh 首先需要ssh-keygen生成id_rsa,把id_rsa.pub的内容复制到目标机器的~/.ssh/authorized_keys 在需要使用scp -r的地方改为rsync -avz -e “ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null” –progress -------------------------------------------------------------------------------- TAR备份整个系统¶ 比如通过远程ssh的方式下载到服务器的整个根目录打包: ssh server tar -cvpz --one-file-system / > server_backup.tar.gz 其中: * c 创建 * v 压缩时显示详情 当前处理的文件 * p preserve-permissions保留权限信息 * z 使用gzip压缩 使用RSYNC像TIME MACHINE一样全盘备份¶ https://github.com/laurent22/rsync-time-backup 例如将Linux服务器多个硬盘所有文件备份到/nas/hostname下面 先从github下载这个rsync_tmbackup.sh文件,删掉其中的--one-file-system,放入/nas目录 将需要忽略的目录写成/nas/rsync_ignore.txt,例如:(注意忽略了/mnt) - /boot - /dev - /lost+found - /media - /mnt - /nas - /nfs - /proc - /snap - /sys - /tmp 然后就执行呗: mkdir -p /nas/hostname touch /nas/hostname/backup.marker /nas/rsync_tmbackup.sh / /nas/hostname/ /nas/rsync_ignore.txt 好处是不用自己构造rsync各种复杂的参数,备份的效果是每次备份都会产生一个文件夹,但上次备份时已经存在的文件只会做硬链接 RSYNC备份到非ROOT用户的目标机器上¶ 参考: https://serverfault.com/questions/755753/preserve-ownership-with-rsync-without-root 全盘备份希望能保留文件的属性,如果目标位置没有root用户则不能直接保留,rsync提供了--fake-super这个选项 这个--fake-super选项启用后,rsync会把属性以特殊拓展属性的方式存储,恢复的时候rsync会利用这个属性进行恢复 RSYNC备份安卓手机¶ 参考: http://ptspts.blogspot.com/2015/03/how-to-use-rsync-over-adb-on-android.html 首先保证手机的usb调试开启了,adb shell能进入手机,在Linux主机上执行: # 将rsync二进制发给手机 wget -O rsync.bin http://github.com/pts/rsyncbin/raw/master/rsync.rsync4android adb push rsync.bin /data/local/tmp/rsync adb shell chmod 755 /data/local/tmp/rsync adb shell /data/local/tmp/rsync --version # 在安卓上启动rsync server 监听在1873端口,转发到Linux的6010端口 adb shell 'exec >/sdcard/rsyncd.conf && echo address = 127.0.0.1 && echo port = 1873 && echo "[root]" && echo path = / && echo use chroot = false && echo read only = false' adb shell /data/local/tmp/rsync --daemon --no-detach --config=/sdcard/rsyncd.conf --log-file=/proc/self/fd/2 # 再启动一个终端继续 adb forward tcp:6010 tcp:1873 # 复制整个/sdcard目录 rsync -avzP --stats rsync://localhost:6010/root/sdcard/ . 浙ICP备15043819号-2 浙公网安备 33010602007826号 Made with Material for MkDocs