在Linux上设置定时任务(cron job)来每天凌晨2点备份MySQL数据库是一个常见的需求。以下是一个简单的脚本示例,以及如何设置cron任务的步骤。

  1. 创建备份脚本

首先,你需要创建一个脚本来执行MySQL数据库的备份。你可以使用以下命令创建一个名为 mysql_backup.sh 的脚本文件:

nano mysql_backup.sh

然后,将以下内容粘贴到脚本中:

#!/bin/bash

# 设置MySQL数据库的用户名和密码
USER="your_username"
PASSWORD="your_password"
HOST="localhost"
DB_NAME="your_database_name"

# 设置备份文件的存储位置
BACKUP_PATH="/path/to/your/backup/directory"
DATE=$(date +%F)
FILE_NAME="mysql_backup_$DB_NAME_$DATE.sql"

# 导出数据库
mysqldump -u $USER -p$PASSWORD -h $HOST $DB_NAME > $BACKUP_PATH/$FILE_NAME

# 检查备份是否成功
if [ $? -eq 0 ]; then
    echo "Backup of $DB_NAME was successful."
else
    echo "Backup of $DB_NAME failed."
fi

# 可选:压缩备份文件
gzip $BACKUP_PATH/$FILE_NAME

# 可选:删除7天前的备份文件
find $BACKUP_PATH -name "*.sql.gz" -mtime +7 -exec rm {} \;

请将 your_usernameyour_passwordyour_database_name/path/to/your/backup/directory 替换成你的MySQL用户名、密码、数据库名称和备份文件存储路径。

  1. 使脚本可执行

保存并退出编辑器后,你需要使脚本可执行。在终端中运行以下命令:

chmod +x mysql_backup.sh
  1. 设置Cron任务

接下来,你需要设置一个cron任务来每天执行这个脚本。在终端中运行 crontab -e 命令来编辑cron任务列表。

在打开的编辑器中,添加以下行来设置每天凌晨2点执行备份脚本的任务:

0 2 * * * /path/to/your/mysql_backup.sh

请确保将 /path/to/your/ 替换成你脚本的实际路径。

保存并退出编辑器,cron任务就设置好了。每天凌晨2点,系统会自动执行这个脚本,备份你的MySQL数据库。

请注意,为了安全起见,不建议在脚本中直接使用明文密码。你可以考虑使用MySQL配置文件或环境变量来安全地存储数据库凭据。此外,确保你的备份路径有足够的磁盘空间,并且定期检查备份文件的完整性。