linux自动化备份文件脚本并且定时任务执行脚本

在Linux下完成文件的自动化备份

先放个链接,万一有人关注呢

运维book思议
李小白,一个北漂的运维。希望能够通过本公众号与业内各位大神交流技术问题。
78篇原创内容

优质文章推荐

↓ ↓ ↓ ↓ 

Linux系统初始化脚本

能够监控100台服务器的磁盘利用率的脚本——16行代码实现

Linux系统初始化脚本之二

Linux系统巡检脚本——快速获取当前系统信息

Linux远程执行脚本——Python运维脚本

哪个Linux发行版会成为CentOS的平替?

 

场景描述

在日常的Linux运维工作中,我们经常需要在不同的机器之间复制文件或者目录。通常情况下,我们使用scp或者rsync命令进行复制操作,但是这些命令需要手动输入用户名、密码以及目标地址等信息,繁琐且容易出错。

因此,编写一个自动化脚本来完成这些操作就显得非常必要。该脚本可以通过预设的参数,快速地完成文件或目录的复制操作,提高生产力,降低出错率。

使用脚本具有以下优势。

1、提高效率:通过使用脚本,我们可以快速地完成复制操作,无需手动输入用户名、密码等信息,大大提高了效率。

2、简化操作:脚本将复杂的命令操作封装在内部,使用者只需要输入简单的命令,就可以完成复制操作,极大地简化了操作流程。

3、减少错误:手动输入命令容易出错,而使用脚本可以规避这些错误。脚本可以通过预设参数来自动化执行操作,减少输入错误,避免不必要的麻烦和损失。

4、提高可维护性:脚本的可维护性也很高。通过将一些常用的命令和操作封装在脚本中,可以降低错误率,同时也方便了维护和更新。

项目实施

我们需要创建一个文件夹用于存储备份文件和日志,可以命名为“backup”。

接下来,我们可以编写一个备份脚本,命名为“backup.sh”,其基本步骤如下:

1、获取当前日期,用于命名备份文件和记录日志。

2、判断备份目录是否存在,如果不存在则创建。

3、执行备份操作,将指定文件夹下的文件复制到备份目录。

4、压缩备份文件,并将压缩文件存储到备份目录。

5、记录备份日志,包括备份日期、备份文件名、备份文件大小等信息。

上代码!
#!/bin/bash
# 获取当前日期backup_date=$(date +"%Y-%m-%d")
# 备份目录backup_dir="/home/user/backup"
# 判断备份目录是否存在,如果不存在则创建if [ ! -d "$backup_dir" ]; then mkdir $backup_dirfi
# 执行备份操作,将指定文件夹下的文件复制到备份目录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”文件中。

我们可以将此脚本添加到计划任务中,例如每天晚上执行一次备份操作:

# 编辑计划任务crontab -e
# 在计划任务中添加以下内容,表示每天晚上10点执行备份脚本0 22 * * * /bin/bash /home/user/backup.sh
结束!

实践:  实现效果如下:

 

 定时任务处理: 10 11 * * * sh 脚本路径名称          每天11:10执行shell脚本

 

 

 

 
 
posted @ 2023-05-11 10:00  往事已成昨天  阅读(795)  评论(0编辑  收藏  举报