首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网络编程-> Shell教程
linux程式设计-11.shellscript(bash)--(3)用於自动备份的shellscript_shell教程
作者:网友供稿 点击:0
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
一个用於自动备份的ShellScript
我们先前提到,可利用ShellScript搭配crond来作定期的工作。要作定期性的工作,在UNIX上,就是与crond的搭配运用。

--------------------------------------------------------------------------------

首先我们先来研究如何对系统进行备份。
要对系统进行备份,不外乎便是利用一些压缩工具。在许多UNIX系统上,tar及gzip是defacto的资料交换标准。我们经常可以看见一些tar.gz或tgz档,这些档案,被称为tarball。当然了,您也可以用bzip2、zip等等压缩工具来进行压缩,不必限定於gzip。但tar配合gzip是最普遍的,也是最方便的方式。

要将我们想要的资料压缩起来,进行备份,可以结合tar及gzip一起进行。方式有很多种,最常用的指令是以下这一种:

tar-cfile/dir...|gzip-9>xxxx.tar.gz

您也可以分开来做:

tar-rfile/dir...-fxxxx.tar
gzip-9xxxx.tar



tar-rfile/dir...-fxxxx.tar
gzip-9xxxx.tar.gz



--------------------------------------------------------------------------------

在解过Linux下档案备份的基本知识後,我们来写一个将档案备份的Script。
#!/bin/sh
#Filename:backup

DIRS="/etc/var/your_directories_or_files"
BACKUP="/tmp/backup.tgz"

tar-c$DIRS|gzip-9>$BACKUP

其中DIRS放的是您要备份的档案及目录,BACKUP是您的备份档。可不要将/tmp放进DIRS中,那样做,您是在做备份的备份,可能将您的硬碟塞爆。



--------------------------------------------------------------------------------

接下来测试
[foxman@foxmanbash]#chmod755backup
[foxman@foxmanbash]#./backup

执行完成後在/tmp就会有一个backup.tgz,里面储存了您重要的资料。您可用

gzip-dc/tmp/backup.tgz|tar-vt

tarvtfz/tmp/backup.tgz

来看看里面的档案列表。

要解开时,可用以下指令来完成复原:

gzip-dc/tmp/backup.tgz|tar-xv

tarxvfz/tmp/backup.tgz

备份通常是仅备份系统通常最重要的部份,/etc可说是不可缺少的一部份。另外,看您系统中有那些重要的资料需要备份。通常来说,您没有必要备份/bin、/sbin、/usr/bin、/usr/sbin、/usr/X11R6/bin等等这些执行档目录。只要备份您重要的档案即可,别把整个硬碟备份,那是蛮呆的动作。



--------------------------------------------------------------------------------

如果您有许多台机器,可利用其中一台任务较轻的内部网路主机,做为主要备份主机。将所有机器都自动执行备份,然後利用NFS/Coda/Samba等网路档案系统,将备份的资料放到该备份机器中,该机器则定时收取备份资料,然後您再由该机器中进行一次备份。
这里是整个系统备份方案的图示。


在您进行之前,先解一下,系统中那些是要备份的,那些是不需要的。



--------------------------------------------------------------------------------

新的backup
#!/bin/sh
HOSTNAME=`hostname`
DIRS="/etc/var/your_important_directory"
BACKUP="/tmp/$HOSTNAME.tgz"
NFS="/mnt/nfs"

tar-c$DIRS|gzip-9>$BACKUP
mv-f$BACKUP$NFS



--------------------------------------------------------------------------------

备份主机内的Script:collect_backup
#!/bin/sh
NFS="/mnt/nfs"
BACKUP="/backup"

mv-f$NFS/*.tgz$BACKUP


在此,您不能够将所有备份都直接放在/mnt/nfs,这是危险的。万一任一台机器不小心将/mnt/nfs所有内容删除,那麽备份就会消失。因此,您需要将/mnt/nfs移到一个只有该备份主机可存取的目录中。



--------------------------------------------------------------------------------

当这些个别的Script都测试好以後,接下来我们将他们放到crontab里面。找到您的crontab,它的位置可能在/var/spool/cron/crontabs/root、/etc/crontab、/var/cron/tabs/root。
在crontab中选择以下之一加入(看您定期的时间):

Slackware:/var/spool/cron/crontabs/root
01****/full_backup_script_path/backup1>/dev/null2>/dev/null#每小时(太过火一点)
3016***/full_backup_script_path/backup1>/dev/null2>/dev/null#每日16:30,下班前备份
3016**0/full_backup_script_path/backup1>/dev/null2>/dev/null#每周一16:30
051**/full_backup_script_path/backup1>/dev/null2>/dev/null#每月一号5:0
RedHat/Debian:/etc/crontab
RedHat可直接将backup放入/etc/cron.hourly,/etc/cron.daily,/etc/cron.weekly,/etc/cron.monthly。或采用如上加入/etc/crontab的方式:
有关crontab的用法,可查"man5crontab",在此不详述。

备份主机的设定类同。

注意:所有机器不要同时进行备份,否则网路会大塞车。备份主机收取备份的时间要设为最後,否则会收不到备份资料。您可以在实作後,将时间间隔调整一下。



--------------------------------------------------------------------------------

看看,两个小小不到三行的ShellScript,配合cron这个定时工具。可以让原本需要耗时多个小时的人工备份工作,简化到不到十分钟。善用您的想像力,多加一点变化,可你让您的生活变得轻松异常,快乐悠哉。


文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·jsp设置页面过期-JSP教程,Jsp/Servlet
·用SqlDataAdapter更新数据库的方法介绍-.NET教程,数据库应用
·用java关闭IE窗口-JSP教程,Java技巧及代码
·ADO.NET 2.0 Feature Matrix-ASP教程,ASP应用
·Jsp & Servlet 会话控制-JSP教程,Jsp/Servlet
·xmlhttp 乱码 的解决方法 (UTF8,GB2312 编码 解码)-ASP教程,XML相关
·使用C#编写Ice应用程序-.NET教程,C#语言
·用PHP实现WEB动态网页静态-PHP教程,PHP应用
·DataGrid基于Access的快速分页法-.NET教程,数据库应用
·HTML文档中小meta的大作用-ASP教程,XML相关
最新文章
·photoshop打造数码照片“像素块”特效_photoshop教程
·css中如何正确的使用id和class_css教程
·保证让新手轻松月挣500以上_网赚技巧
·记住10个关键词让你作一名成功的站长_站长心得
·对新人站长得一些善意得提醒_站长心得
·在windows vista中安装telnet客户端_windows vista
·怎样提高你的google adsense收入_站长心得
·googleadsense新手指南及常见问题整理_google推广
·高网站访问量的必胜之道:访google adwords经理(上)_google推广
·成功经验谈:运营blog的21个具体方法_网络编辑
相关主题
  • linux操作系统上摄像头的使用小技巧_linux教程
  • linux下mysql的一点基本用法_数据库教程
  • linux攻略 dns服务器安装配置方法详细介绍_linux教程
  • linux学习(远程控制跟ip地址配置)_linux教程
  • linux系统下如何加载u盘或移动硬盘_linux教程
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭