香港VPS自动化部署与定时备份配置指南
文章分类:售后支持 /
创建时间:2025-11-04
对于经常维护网站的朋友来说,香港VPS的自动化部署和定时备份绝对是两个“省时利器”。前者能让部署效率翻倍,后者则像数据的“保险栓”,防止意外导致的资料丢失。今天就带大家一步步配置相关脚本。
自动化部署:让代码更新“一键触发”
以常见的Python Flask应用为例,自动化部署的核心是用脚本替代手动操作。首先得在香港VPS上搭好环境——毕竟巧妇难为无米之炊。
在Ubuntu系统中,先更新软件源并安装基础工具。打开终端输入:
```bash
sudo apt update
sudo apt install python3 python3-pip git
```
这一步会安装Python解释器、包管理工具pip和代码管理工具Git。装完后,就可以开始写部署脚本了。
假设你的Flask代码托管在GitHub,部署脚本的逻辑很简单:拉最新代码→装依赖→重启服务。新建一个deploy.sh文件,内容如下:
```bash
#!/bin/bash
# 从GitHub拉取最新代码
git pull origin main
# 安装项目依赖包
pip3 install -r requirements.txt
# 重启Flask服务(需提前配置systemd服务文件)
sudo systemctl restart your_flask_app.service
```
保存后给脚本执行权限:`chmod +x deploy.sh`。现在手动运行./deploy.sh,就能完成一次部署。但要实现“代码更新自动触发”,还得请出Git的Webhook功能。
Webhook就像GitHub给VPS发的“通知”——当代码提交时,GitHub会向VPS指定地址发送POST请求。我们需要写个小服务接收这个请求并执行部署脚本。用Flask写个简单的接收程序webhook.py:
```python
from flask import Flask, request
import subprocess
app = Flask(__name__)
@app.route('/deploy', methods=['POST'])
def deploy():
# 执行部署脚本
subprocess.call(['./deploy.sh'])
return '部署已触发'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
```
启动服务:`python3 webhook.py`。最后去GitHub仓库的设置里添加Webhook,把Payload URL填成你的香港VPS公网IP加端口(如http://123.45.67.89:5000/deploy)。之后每次推代码,部署就会自动跑起来。
定时备份:给数据上把“时间锁”
再安全的服务器也可能遇到误操作或硬件故障,定时备份能让你有“后悔药”可吃。这里以MySQL数据库和网站文件备份为例。
先写备份脚本backup.sh,内容分两部分:数据库备份和文件打包。假设数据库用户是root,密码是123456,数据库名是myweb,网站文件存放在/var/www/html:
```bash
#!/bin/bash
# 备份数据库(注意密码直接写在命令里不安全,生产环境建议用配置文件)
mysqldump -uroot -p123456 myweb > /backup/$(date +%Y%m%d)_myweb.sql
# 打包网站文件(-z表示压缩,-c创建包,-v显示过程)
tar -zcvf /backup/$(date +%Y%m%d)_html.tar.gz /var/www/html
```
保存后同样赋权:`chmod +x backup.sh`。现在手动运行能生成带日期的备份文件,但要定时执行还得靠Linux的Cron服务。
输入`crontab -e`打开定时任务编辑器,添加一行:
```
0 2 * * * /path/to/backup.sh
```
这行的意思是每天凌晨2点执行备份脚本(0代表分钟,2代表小时)。保存退出后,Cron会自动按计划运行,备份文件会在/backup目录里累积,方便按日期回溯。
无论是自动化部署还是定时备份,核心都是用脚本把重复操作标准化。实际使用中,你可以根据项目需求调整脚本——比如给备份文件加容量限制,或在部署前增加代码检查步骤。掌握这些技巧后,香港VPS的运维效率会提升一大截,数据安全也多了层保障。
工信部备案:粤ICP备18132883号-2