Linux下文件的自动备份
场景描述
在日常的Linux运维工作中,我们经常需要在不同的机器之间复制文件或者目录。通常情况下,我们使用scp或者rsync命令进行复制操作,但是这些命令需要手动输入用户名、密码以及目标地址等信息,繁琐且容易出错。
因此,编写一个自动化脚本来完成这些操作就显得非常必要。该脚本可以通过预设的参数,快速地完成文件或目录的复制操作,提高生产力,降低出错率。
使用脚本具有以下优势。
1、提高效率:通过使用脚本,我们可以快速地完成复制操作,无需手动输入用户名、密码等信息,大大提高了效率。
2、简化操作:脚本将复杂的命令操作封装在内部,使用者只需要输入简单的命令,就可以完成复制操作,极大地简化了操作流程。
3、减少错误:手动输入命令容易出错,而使用脚本可以规避这些错误。脚本可以通过预设参数来自动化执行操作,减少输入错误,避免不必要的麻烦和损失。
4、提高可维护性:脚本的可维护性也很高。通过将一些常用的命令和操作封装在脚本中,可以降低错误率,同时也方便了维护和更新。
项目实施
我们需要创建一个文件夹用于存储备份文件和日志,可以命名为“backup”。
接下来,我们可以编写一个备份脚本,命名为“backup.sh”,其基本步骤如下:
1、获取当前日期,用于命名备份文件和记录日志。
2、判断备份目录是否存在,如果不存在则创建。
3、执行备份操作,将指定文件夹下的文件复制到备份目录。
4、压缩备份文件,并将压缩文件存储到备份目录。
5、记录备份日志,包括备份日期、备份文件名、备份文件大小等信息。
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #!/bin/bash # 获取当前日期 backup_date=$( date + "%Y-%m-%d" ) # 备份目录 backup_dir= "/home/user/backup" # 判断备份目录是否存在,如果不存在则创建 if [ ! -d "$backup_dir" ]; then mkdir $backup_dir fi # 执行备份操作,将指定文件夹下的文件复制到备份目录 cp -R /home/ user /data $backup_dir/data_$backup_date # 压缩备份文件,并将压缩文件存储到备份目录 tar -czvf $backup_dir/data_$backup_date.tar.gz $backup_dir/data_$backup_date # 记录备份日志,包括备份日期、备份文件名、备份文件大小等信息 backup_size=$(du -h $backup_dir/data_$backup_date.tar.gz | awk '{print $1}' ) echo "$backup_date Backup Completed: data_$backup_date.tar.gz ($backup_size)" >> $backup_dir/backup.log |
这个备份脚本假设要备份的文件夹是“/home/user/data”,备份后的文件存储在“/home/user/backup”目录中,备份日志记录在“/home/user/backup/backup.log”文件中。
我们可以将此脚本添加到计划任务中,例如每天晚上执行一次备份操作:
1 2 3 4 5 | # 编辑计划任务 crontab -e # 在计划任务中添加以下内容,表示每天晚上10点执行备份脚本 0 22 * * * /bin/bash /home/ user /backup.sh |
__EOF__
作 者:Aaron
出 处:https://www.cnblogs.com/Williamls/p/17283634.html
关于博主: 谦谦君子 卑以自牧
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本。
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2019-04-03 在线激活win10、win8/8.1和office2019、2016、2013等的kms激活工具
2019-04-03 MySQL数据优化
2019-04-03 帆软报表(finereport)决策平台笔记