linux定时任务打包,文件名包含当天日期的方法如下:
可以使用 crontab 命令设置定时任务,并结合 tar 命令和 date 命令实现文件打包和命名。 以下是一个示例,假设要打包 /www/wwwroot/ 目录下的所有文件,并将压缩包保存到 /www/backup/ 目录:
- 创建打包脚本: 创建一个shell脚本 (例如 backup.sh),内容如下:
#!/bin/bash # 设置备份目录 backup_dir="/www/backup/" # 获取当前日期,格式为YYYY-MM-DD backup_date=$(date +%Y-%m-%d) # 设置备份文件名 backup_file="${backup_dir}46.149.200.118-${backup_date}.tar.gz" # 执行打包命令 tar -zcvf "${backup_file}" "/www/wwwroot/*" # 可选:添加日志记录,方便监控备份过程 echo "$(date +"%Y-%m-%d %H:%M:%S") Backup completed successfully." >> "${backup_dir}backup.log"
- 设置脚本权限: 使脚本可执行:
chmod +x backup.sh
- 使用crontab设置定时任务: 使用 crontab -e 命令编辑crontab文件,添加一行配置,例如每天凌晨2点执行备份:
0 2 * * * /path/to/backup.sh # 将 /path/to/ 替换为 backup.sh 脚本的实际路径
解释:
- /path/to/backup.sh: 这是 backup.sh 脚本的完整路径。 请根据实际路径修改。
- 0 2 * * *: 这是crontab的定时表达式,表示每天的2点0分执行。 你可以根据需要修改这个表达式,例如 0 10 * * * 表示每天10点执行。 更多crontab表达式的细节可以参考crontab的文档。
重要提示:
- 确保 /www/backup/ 目录存在并且具有写入权限。
- /www/wwwroot/* 会打包/www/wwwroot/目录下的所有文件和子目录。如果需要排除某些文件或目录,需要修改 tar 命令的参数。例如,排除*.log文件可以使用tar -zcvf "${backup_file}" --exclude='*.log' "/www/wwwroot/*"。
- 定期检查备份日志文件 /www/backup/backup.log,查看备份是否成功。
- 根据你的服务器资源和备份数据量,调整备份时间和策略,避免影响服务器正常运行。 例如,可以考虑使用增量备份来减少备份时间和存储空间。
这个改进后的方案更加健壮,避免了直接在crontab中使用复杂的命令,也更容易维护和调试。 记住替换 /path/to/ 为 backup.sh 脚本的实际路径。
以上就是linux计划任务打包,文件名字为当天日期的详细内容,更多请关注知识资源分享宝库其它相关文章!
版权声明
本站内容来源于互联网搬运,
仅限用于小范围内传播学习,请在下载后24小时内删除,
如果有侵权内容、不妥之处,请第一时间联系我们删除。敬请谅解!
E-mail:dpw1001@163.com
发表评论