核心是使用cron调度+shell脚本,需确保脚本可执行、时间表达式准确、环境(路径/权限/变量)正确:编写含绝对路径和时间戳的脚本→chmod +x赋权→crontab -e添加0 2 * /path/to/script→手动测试并查/var/log/cron日志。

在 Linux 中设置每天凌晨执行的定时备份任务,核心是使用 cron 定时调度工具,并配合 shell 脚本完成备份逻辑。关键在于:确保脚本可执行、cron 时间表达式准确、运行环境(如路径、权限、环境变量)正确。
1. 编写备份脚本
先创建一个备份脚本(例如 /home/user/backup.sh),内容示例:
- 以
#!/bin/bash开头,明确解释器 - 使用绝对路径(
/usr/bin/tar、/bin/cp等),避免 cron 因 PATH 不同而找不到命令 - 添加时间戳生成唯一备份文件名,例如:
backup_$(date +\%Y\%m\%d).tar.gz - 重定向输出到日志(如
>> /var/log/backup.log 2>&1),便于排查问题
示例脚本片段:
#!/bin/bash SOURCE_DIR="/var/www/html" BACKUP_DIR="/backup" DATE=$(date +\%Y\%m\%d) tar -czf "$BACKUP_DIR/backup_$DATE.tar.gz" "$SOURCE_DIR" >> /var/log/backup.log 2>&1 find "$BACKUP_DIR" -name "backup_*.tar.gz" -mtime +7 -delete
2. 设置脚本可执行权限
运行以下命令赋予执行权限:
chmod +x /home/user/backup.sh
不加这步,cron 执行会失败(提示 “Permission denied” 或直接静默跳过)。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
3. 添加到 crontab 并指定凌晨时间
运行 crontab -e 编辑当前用户的定时任务,添加一行:
0 2 * * * /home/user/backup.sh
含义:每天凌晨 2:00 执行(分钟 0,小时 2,其余为 *)。注意:
- 时间按系统时区计算,可通过
timedatectl确认 - 如果需以 root 权限运行(如备份 /etc 或系统日志),用
sudo crontab -e编辑 root 的 crontab - 避免在脚本中用
sudo,而应让 cron 本身以合适用户身份运行
4. 验证与调试要点
刚配置后建议手动测试一次:/home/user/backup.sh,确认无报错、生成文件、日志有记录。
常见问题排查方向:
- cron 日志默认在
/var/log/syslog(Debian/Ubuntu)或/var/log/cron(CentOS/RHEL),搜索 “CRON” 关键字 - 脚本中用
env >> /tmp/cron_env.log查看 cron 运行时的实际环境变量(PATH 往往很短) - 避免依赖交互式 shell 特性(如别名、bashrc 中的函数),cron 使用的是最小化 sh 环境










