#!/bin/bash
# SSH连接信息
SSH_HOST="your_remote_host"
SSH_PORT="your_remote_port"
SSH_USER="your_username"
SSH_KEY="path_to_your_private_key"
# 备份目录
BACKUP_DIR="/path/to/backup"
# 备份数据库
function backup_database() {
DB_HOST="database_host"
DB_USER="database_username"
DB_PASSWORD="database_password"
DB_NAME="database_name"
DATE=$(date +"%Y-%m-%d")
FILENAME="${DB_NAME}_${DATE}.sql"
ssh -p $SSH_PORT -i $SSH_KEY $SSH_USER@$SSH_HOST "mysqldump -h $DB_HOST -u $DB_USER -p'$DB_PASSWORD' $DB_NAME > $BACKUP_DIR/$FILENAME"
}
# 备份文件
function backup_files() {
FILE_PATHS=(
"/path/to/file1.txt"
"/path/to/file2.txt"
"/path/to/file3.txt"
)
DATE=$(date +"%Y-%m-%d")
for FILE_PATH in "${FILE_PATHS[@]}"; do
FILENAME=$(basename "$FILE_PATH")
ssh -p $SSH_PORT -i $SSH_KEY $SSH_USER@$SSH_HOST "cp $FILE_PATH $BACKUP_DIR/${FILENAME}_${DATE}"
done
}
# 执行备份
backup_database
backup_files
在这个示例脚本中,需要根据实际情况进行以下修改:
SSH_HOST
:远程服务器的主机名或IP地址。SSH_PORT
:SSH连接的端口号,默认为22。SSH_USER
:登录远程服务器的用户名。SSH_KEY
:你的SSH私钥文件的路径。BACKUP_DIR
:备份文件存储的目录路径。
对于数据库备份部分,你需要提供数据库的连接信息:
DB_HOST
:数据库的主机名或IP地址。DB_USER
:数据库的用户名。DB_PASSWORD
:数据库的密码。DB_NAME
:要备份的数据库名。
在文件备份部分,你可以根据需要将要备份的文件路径添加到FILE_PATHS
数组中。
请确保在运行脚本之前,你已经拥有适当的SSH访问权限,并且目标服务器上已安装所需的备份工具(如mysqldump)。