会员控制台 会员登陆 会员注册 最后更新 高级搜索 会员投稿 退出登陆
设为首页
收藏本站
留言给我
  首页 | 操作系统类 | 程序设计类 | 数据库类 | 应用服务类 | 网络及硬件类 | 其他技术 | GBunix论坛
操作系统类
程序设计类
数据库类
应用服务类
网络及硬件类
其他技术
Unix中文 / 程序设计类 / SHELL / FTP自动备份的Script
FTP自动备份的Script
2004-06-11    ptsmy    www.gbunix.com    点击:
FTP自动备份的Script

我的想法是这样:让系统自动备份,每隔NUM天,把原来的备份覆盖一遍,硬盘上一共保留NUM个备份文件(如果留太多备份文件硬盘空间不够),这样网站可以还原至NUM-1天前的状态,便于webmaster及时发现错误完成恢复。


#!/bin/bash

#保留的备份文件的个数(或备份间隔的天数)
NUM='3'

#备份文件保存的路径
BACKUP_PATH='/home/backup/ftp'

#/home/backup/etc/ftpuser.pw中保存ftp主机、用户名、密码等,每行为一
#个FTP用户,第一列为主机名,第二列为用户名,第三列为密码,中间用TAB键
#格开
PASSWD_FILE='/home/backup/etc/ftpuser.pw'

for ((H=1;$H<$NUM;H++));
do

N=`date +%H`
num=`expr $N % $NUM`

if [ ${num} -eq ${H} ] ; then

while read x y z
do
echo "Starting Backup......................................................."
echo "Host:"$x" User:"$y" Password:********"
echo "Checking Directory..................................................."

if [ ! -d ${BACKUP_PATH}/$x ]; then
echo "Directory $BACKUP_PATH/$x is not exist,Creatting Directory."
mkdir -p ${BACKUP_PATH}/${x} &>/dev/null && echo "Directory $BACKUP_PATH/$x has been Created."
sleep 1
fi

if [ ! -d ${BACKUP_PATH}/$x/$y ]; then
echo "Directory $BACKUP_PATH/$x/$y not exist,Creating Directory."
mkdir -p ${BACKUP_PATH}/${x}/${y} &>/dev/null && echo "Directory $BACKUP_PATH/$x/$y has been Created."
sleep 1
fi

echo "Downloading files....................................................."
wget -q -nH --passive-ftp -r -N -l inf -P$BACKUP_PATH/$x/$y ftp://$y:$z@$x
echo "Download complete!"
echo "Compressing files....................................................."
cd $BACKUP_PATH/$x/
tar -czvf $y$H.tar.gz $y >/dev/null 2>&1
echo "Compressing complete."
echo "Deleting temp files..................................................."
rm -rf $BACKUP_PATH/$x/$y
sleep 1
echo "Delete comelete."
echo "Backup done."

done<$PASSWD_FILE

fi

done


把这个脚本保存为FtpBackupTools,属性为700,放到/etc/cron.daily下面,这样脚本每天备份一次,每隔NUM天把原来的备份覆盖。
刚开始写SHELL,不足之处请大家指点。

了解更多详情,参与讨论,请进入GBUNIX论坛

http://www.gbunix.com/bbs/index.php
责任编辑: trotter

相关文章
CVS的常用命令速查手册 - 01-19 08:41 pm - 点击: 4294
如何配置和使用SSH验证的CVS服务器 - 01-18 05:09 pm - 点击: 1221
使用 Subversion 来代替 CVS - 01-18 10:49 am - 点击: 2868
Subversion 比 CVS 更好用 - 01-18 10:44 am - 点击: 1356
CVS服务器建立和权限配置 - 08-14 12:54 am - 点击: 1409
配置CVS服务器和客户端完全解析 - 08-08 11:13 pm - 点击: 1253
cvs服务器的安装 - 06-29 10:24 pm - 点击: 2508

发表评论 查看评论 加入收藏 Email给朋友 打印本文
给该文章评分
1 2 3 4 5 6 7 8 9 10
平均得分 0, 共 0 人评分
1 2 3 4 5 6 7 8 9 10
发表评论
标题:
内容:
声明:本站资讯均来自互联网,所有文章版权归原作者和出版者所有,如涉及版权问题,请来信告知!
Copyright © 2002-2004 GBunix.com. All rights reserved.