OnWorks Linux 和 Windows 在线工作站

商标

工作站免费在线托管

<上一页 | 内容 | 下一页>

2.1. 旋转 NFS 档案


在本节中,将稍微修改 shell 脚本以实现祖父-父亲-儿子轮换方案(每月-每周-每天):

• 轮换将做一个 每天 周日到周五备份。

• 在星期六 每周 备份已完成,每月为您提供四次每周备份。

•该 每月一次 备份在每月的第一天完成,根据月份是奇数还是偶数,轮流进行两次每月备份。


这是新脚本:


#!/斌/庆典

####################################

#

# 备份到 NFS 挂载脚本

#祖父父子轮换。

#

####################################


#备份什么

backup_files="/home /var/spool/mail /etc /root /boot /opt"


# 备份到哪里。 dest="/mnt/备份"


# 为存档文件名设置变量。 天=$(日期+%A)

hostname = $(hostname -s)


# 找出它是一个月的第 1-4 周。 day_num=$(日期+%-d)

如果 (( $day_num <= 7 )); 然后 week_file="$hostname-week1.tgz"

elif (( $day_num > 7 && $day_num <= 14 )); 然后 week_file="$hostname-week2.tgz"

elif (( $day_num > 14 && $day_num <= 21 )); 然后 week_file="$hostname-week3.tgz"

elif (( $day_num > 21 && $day_num < 32 )); 然后 week_file="$hostname-week4.tgz"

fi



# 找出月份是奇数还是偶数。 月数=$(日期+%m)

月=$(expr $month_num % 2) if [ $month -eq 0 ]; 然后

month_file="$hostname-month2.tgz"

其他


fi


month_file="$hostname-month1.tgz"


# 创建存档文件名。 如果 [ $day_num == 1 ]; 然后 archive_file=$month_file

elif [ $day != "星期六" ]; 然后 archive_file="$hostname-$day.tgz"

否则存档文件=$week_file

fi


#打印开始状态信息。

echo "将 $backup_files 备份到 $dest/$archive_file" 日期

回音


#使用tar备份文件。

tar czf $ dest / $ archive_file $ backup_files


# 打印结束状态消息。 回声

回显“备份完成”日期


# $dest 中的长文件列表以检查文件大小。 ls -lh $dest/


可以使用与第 1.2 节 “执行脚本” [p. 325] 中相同的方法来执行该脚本。 XNUMX]。


在发生灾难时,将备份媒体带离现场是一种很好的做法。 在 shell 脚本示例中,备份媒体是另一台提供 NFS 共享的服务器。 很可能将 NFS 服务器带到另一个位置是不切实际的。 根据连接速度,可以选择通过 WAN 链接将存档文件复制到另一个位置的服务器。


另一种选择是将存档文件复制到外部硬盘驱动器,然后可以将其带离现场。 由于外置硬盘驱动器的价格不断下降,每个存档级别使用两个驱动器可能更划算。 这将允许您将一个外部驱动器连接到备份服务器,并将一个外部驱动器连接到另一个位置。


OnWorks 的顶级操作系统云计算: