服务器备份脚本

简介:

服务器里的数据是相当地重要,要是服务器的数据坏了,没有备份那就玩大了。于是老大让做一个服务器数据备份脚本。
我思考了一下备份策略。定时将服务器里的数据打包通过网络存放到另一台服务器上就可以完成这个功能。

备份有3步骤:
(1)收集数据:将服务器里的数据从服务器数据目录复制到指定的目录下。
(2)数据打包:用tar将指定目录下的文件打包压缩。
(3)发送数据:通过网络将压缩文件发送到另一台服务器。 


1. 收集数据

    将网站数据复制到指定的目录,假设是/var/backup目录下。


BackupPath=/var/backup
cp -r /var/www/zt $BackupPath

2. 压缩数据


FileName=backup-`date +%Y%m%d`.tar.gz
tar czf $TempFile $BackupPath

 3. 发送文件

   发送文件可以选择ftp发送。也可以自己写一个文件传递协议。


FileName=$1
T=Temp.ftp
echo "user $ftp_user $ftp_passwd" > $T
echo "binary" >> $T
echo "cd /xxx/yyy" >> $T
echo "put $FileName" >> $T
echo "bye" >> $T
ftp -i -n $ftp_ip < $T
rm $T

如何实现定时处理?
我想的最原始的方法就是开一个后台程序:


while true; do
    ./backup.sh  # 备份
    sleep period_time  # 延时一个周期
done

后来发现有另一个更方便的方法就是crontab

扩展功能:立即备份
有时候,我们对网络里的数据做了大量的修改,如果在定时备份前丢失了,那也就太可惜了。如果有一个立即备份功能,在完成大量修改之后立即备份就OK了。
实现方法很简单,就是开一个后台服务进程,通过网络监听“backup-now”命令,一旦收到命令就执行一次backup。


这是我Shell程序的目录组织结构:


.
|-- backup.sh
|-- collect.d
|   |-- collect_review.sh
|   `-- collect_zentao.sh
|-- config
|-- send_file.d
|   |-- send_file_by_ftp.sh
|   `-- send_file_by_netcat.sh
`-- send_file.sh

目录
相关文章
|
1月前
|
弹性计算 运维 监控
免费的ECS备份重磅上线!100GiB 免费额度,全地域覆盖!
阿里云推出ECS文件备份基础版,全地域享100GiB免费额度,支持文件级增量备份,秒级恢复单个文件,低成本高效保护数据。适用于Web配置、代码等轻量备份场景,三步开启,零成本上手,为ECS实例提供开箱即用的数据安全保障。
242 11
|
3月前
|
存储 安全 数据管理
服务器违规资源被删,数据定时备份OSS 云存储才是 “救命稻草”
在数字化时代,数据已成为企业与个人的核心资产。然而,服务器违规、硬件故障等问题频发,导致数据丢失、业务中断,甚至造成不可挽回的损失。为保障数据安全与业务连续性,定时备份至关重要。阿里云国际站OSS提供高效、可靠的云存储解决方案,支持自动定时备份,帮助用户轻松应对数据风险。本文详解OSS备份操作步骤与注意事项,助你为数据穿上“防护甲”,实现安全无忧存储。
|
6月前
|
弹性计算 NoSQL 数据库
阿里云服务器如何备份数据?
阿里云服务器数据备份有多种方法,用户可按需选择。主要方式包括:1)快照备份,创建云盘的时间点拷贝,支持定期备份与数据恢复;2)数据库备份DBS,适用于多种环境的数据库备份,涵盖本地及多云场景;3)云备份Cloud Backup,提供统一灾备平台,支持ECS整机、数据库、文件系统等全方位备份,保障数据安全。
|
7月前
|
安全 Linux
阿里云linux服务器使用脚本通过安全组屏蔽异常海外访问ip
公网网站可能会遭受黑客攻击导致访问异常,使用此脚本可以屏蔽掉异常IP 恢复访问。也可自行设置定时任务定期检测屏蔽。
581 28
|
7月前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
339 28
|
8月前
|
存储 安全 Linux
CentOS 7.9系统备份:每日定期发送最新备份文件到另一台服务器。
注意,这个解决方案忽略了很多细节,例如错误处理和通知、备份版本控制、循环处理旧的备份文件等等。此外,你也应该尽量保持源服务器和目标服务器之间快速,稳定且安全的网络连接,并且目标服务器应该有足够的空间用于存放每天的备份文件。如果你需要更高级的备份解决方案,可能需要考虑一下使用专门的备份工具或者服务。
366 18
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
800 1
|
存储 Linux 网络安全
【VMware VCF】使用 SFTP 服务器备份 VCF 核心组件的配置文件
【10月更文挑战第6天】以下是使用 SFTP 服务器备份 VMware VCF 核心组件配置文件的步骤:首先,设置 SFTP 服务器并配置用户账号与权限;其次,确保 VCF 环境能与 SFTP 服务器建立网络连接,并检查防火墙规则;接着,识别核心组件配置文件的位置,并使用 SFTP 客户端工具(如 `lftp` 或 WinSCP)进行备份;最后,验证备份结果的完整性和正确性,并定期执行备份操作,设置备份文件保留策略以节省存储空间。
157 0
|
数据安全/隐私保护
服务器备份的常见方法包括完全备份、增量备份、差异备份和实时备份
服务器备份的常见方法包括完全备份、增量备份、差异备份和实时备份
1550 3
|
数据安全/隐私保护
服务器备份有哪些方法?
服务器备份有哪些方法?
1035 2

热门文章

最新文章