MySQL备份脚本需用--defaults-extra-file指定配置文件并设chmod 600权限cron中须用绝对路径调用命令、显式声明PATH、重定向标准错误备份文件名含时间戳用find轮转保留7天存储目录须独立且可写并定期验证可恢复性。MySQL 备份脚本必须显式指定 --defaults-extra-file 或避免密码明文直接在 mysqldump 命令里写 -ppassword 会导致 cron 执行失败因为 cron 环境不读取交互式 shell 的别名、函数或某些环境变量且密码明文还存在安全风险。更稳妥的方式是使用配置文件创建仅限当前用户可读的配置文件例如 /home/user/.mybackup.cnf内容为[client]user backup_userpassword your_strong_passwordhost localhost执行备份时加参数mysqldump --defaults-extra-file/home/user/.mybackup.cnf --single-transaction --routines --triggers db_name backup.sql务必运行 chmod 600 /home/user/.mybackup.cnf否则 mysqldump 会拒绝读取cron 时间表达式要匹配实际执行权限和路径很多备份脚本在终端能跑但加进 crontab 就静默失败根本原因是 cron 使用最小化环境没有 $PATH不加载 ~/.bashrc找不到 mysqldump 或 gzip。用绝对路径调用命令比如 /usr/bin/mysqldump 和 /bin/gzip可用 which mysqldump 确认在 crontab 条目开头显式声明 PATH例如PATH/usr/local/bin:/usr/bin:/bin测试 cron 环境临时加一行 * * * * * env /tmp/cron_env.txt查看实际可用变量日志重定向不能只写 /path/to/log要补全错误流 /var/log/backup.log 21备份文件名必须含时间戳且保留多份需手动轮转不带时间戳的备份文件会被覆盖而 cron 本身不提供文件轮转能力。靠命名 简单 find 删除是最轻量可控的做法。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手依托大模型帮助用户记录、整理和分析音视频内容体验用大模型做音视频笔记、整理会议记录。