文件备份的几个简单命令
我们知道,备份文件是一件很重要的事情,我在《优秀程序员的十个习惯》一文向大家说明了备份文件应该是程序员最基本的一个习惯。本文主要是向大家介绍一些在备份文件和数据时能用得到的一些示例,当然,这些示例主要是通过一些命令行或是脚本来实现的。这就是用命令行和脚本的优势,你可以实现比较灵活和自动的定制。
本文中的脚本和示例都是主要是通过zip, tar, ftp, wget和shell脚本来完成。在Linux下,你可以什么也不用安装任何程序,但在Windows下,你需要安装zip 和wget这三个命令(在本文的最后有这三个命令的链接,你可以去下载)
几个小脚本
1)首先,我们来看一下,如何给某目录打个zip包。
Windows:
zip -r backup.zip "c:\yourfolder"
Linux: (打包自己的home目录)
tar -czvf ~/backup.tgz --exclude backup.tgz ~/
2)接下来,我们再来看一下,创建一个带有时间文件名的压缩包,并上传到远程主机的一个例子。
Windows
:: cmd 脚本
:: 压缩包文件格式`backup-mm-dd-yyyy.zip'
:: 注意:%dir% 被引号括起是怕目录名中有空格
@echo off
set host=ftp.yourhost.com
set user=username
set pass=password
set file=backup-%date:~4,2%-%date:~7,2%-%date:~10%.zip
set dir="yourfolder"
zip -r %file% %dir%
> script.ftp echo open %host%
>> script.ftp echo %user%
>> script.ftp echo %pass%
>> script.ftp echo bin
>> script.ftp echo put %file%
>> script.ftp echo bye
ftp.exe -d -s:script.ftp > backup.log
del script.ftp
Linux
#!/bin/bash
host="ftp.yoursite.com"
user="username"
pass="password"
file="backup-$(date '+%m-%d-%Y').tgz"
dir="$HOME"
tar -cvzf $file $dir
ftp -vin <ftp.log
open $host
user $user $pass
bin
put $file
close
bye
EOF
3)最后,我们来看一看,通过wget命令来下载备份好的压缩包。
Windows
:: cmd 脚本
:: 注意: '^' 是一个命令的换行符
set host="ftp://ftp.your.host.com"
set user="flintstone"
set pass="yabbadabbadoo"
wget %host% --ftp-user=%user% --ftp-password=%pass% ^
--mirror --output-file=backup.log --passive-ftp
Linux
#!/bin/sh
# 注意 '\' 是命令的换行符
host="ftp://ftp.your.host.com"
user="username"
pass="password"
wget $host --ftp-user=$user --ftp-password=$pass \
--mirror --output-file=backup.log --passive-ftp
相关工具
Info-Zip: http://www.info-zip.org/
GNU Tar: http://www.gnu.org/software/tar/
GNU Wget: http://www.gnu.org/software/wget/
几点注意
上面的那几个命令比较简单,只是表明一些备份的脚本思路。在实际过程当中,基本上也是这样,下面是几点注意。
1)给备份文件打包压缩这是第一步,你可以选用其它的压缩程序。如bzip。
2)文件名上有时间信息比较容易归档。有时候,文件包比较大,还需要对大文件进行分割(一般的压缩软件都支持文件分割)。
3)使用wget和ftp可能会有用户名密码泄露的问题,使用ssh拷贝文件会比较好。
4)源代码最好还是使用版本控制工具备份(比如Subversion或CVS)
5)备份脚本可以放在计划任务(linux是corn)中以实际自动化。
6)以上的方法一般说来比较适用于全部备份,而不是增量备份。
转载于酷壳CoolShell 无删改 仅以此纪念陈皓(左耳朵耗子)
读了《Rework》这本书好多遍,每次读都有不同的感想。但从来没有把这些感想记录下来,今天把《Rework》书中的一些章节做一些摘录,并把我的一些感想总结出来。供大家参考。这是…
RT ,用途:1 、测试 android 软件使用。2 、电话卡多了两张,保号用。 全平台使用苹果很久了(丐版收集者),出于上面原因,想买个性能够用的安卓机。 个人对小米( o…
我知乎好家伙,这怎么跟电子厂一模一样🥲 行业已经烂掉了,这就是未来 本来就是电子厂,大家都是牛马,别相互嫌弃。 本质上还是劳动力密集型产业,以前只是缺人,现在不缺人…