在Linux上备份MySQL数据库和网站

  1. 创建备份脚本

    创建一个备份脚本,例如backup.sh,包含数据库和网站备份:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash

# 数据库配置
DB_USER="your_db_user"
DB_PASSWORD="your_db_password"
DB_NAME="your_db_name"
BACKUP_DIR="/path/to/backup/directory"
DATE=$(date +"%Y%m%d%H%M")

# 备份文件名
DB_BACKUP_FILE="$BACKUP_DIR/$DB_NAME-$DATE.sql"
SITE_BACKUP_FILE="$BACKUP_DIR/website-$DATE.tar.gz"
WEBSITE_DIR="/path/to/website/directory"

# 备份数据库
mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > $DB_BACKUP_FILE

# 检查数据库备份是否成功
if [ $? -eq 0 ]; then
echo "Database backup successful: $DB_BACKUP_FILE"
else
echo "Database backup failed!"
fi

# 备份网站文件
tar -czf $SITE_BACKUP_FILE -C $WEBSITE_DIR .

# 检查网站备份是否成功
if [ $? -eq 0 ]; then
echo "Website backup successful: $SITE_BACKUP_FILE"
else
echo "Website backup failed!"
fi

your_db_useryour_db_passwordyour_db_name/path/to/backup/directory/path/to/website/directory替换为实际的数据库用户名、密码、数据库名、备份目录路径和网站目录路径。

  1. 设置脚本执行权限

    1
    chmod +x /path/to/backup.sh
  2. 配置cron任务

    使用crontab编辑器:

    1
    crontab -e

    在crontab文件中添加如下行,设置每天16:30执行备份:

    1
    30 16 * * * /path/to/backup.sh

通过以上步骤,你可以在每天16:30定时备份MySQL数据库和网站文件。