liunx下自动备份文件夹
由于系统会实时产生文件(如图片),为了保证数据不会因为系统崩溃或者黑客入侵等原因导致数据丢失,如果使用OSS等文件服务可以不用考虑备份的问题,如果是自己弄的文件服务还是对文件进行定时备份也是有必要的。以下是liunx下面的定时备份文件夹的操作。
1.编辑sh命令,对文件夹进行备份,命令如下:
#!/bin/bash backup_date=$(date +%Y%m%d%H%M%S)
# 备份目录
backup_dir="/backup/file"
# 判断备份目录是否存在,如果不存在则创建
if [ ! -d "$backup_dir" ]; then
mkdir $backup_dir
fi # 执行备份操作,将指定文件夹下的文件复制到备份目录
cp -R /home/data $backup_dir/data_$backup_date # 压缩备份文件,并将压缩文件存储到备份目录
tar -czvf $backup_dir/data_$backup_date.tar.gz $backup_dir/data_$backup_date # 删除备份的文件夹
rm -rf $backup_dir/data_$backup_date #删除该文件夹下超过30天的文件
find $backup_dir -mtime +30 -name "*.tar.gz" -exec rm -rf {} \; # 记录备份日志,包括备份日期、备份文件名、备份文件大小等信息
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
2.创建好备份命令后,需要使用crontab添加定时执行任务,输入crontab -e 将以下命令添加到最后一行 并且保存即可,系统会在2点0分将执行文件备份的命令
0 2 * * * /backup/backup_file.sh >> /backup/log/backup.log 2>&1 # 每天晚上2点执行文件备份命令,并且保存执行日志(包括错误日志)到指定目录/bakcup/log
3. 远程备份到其它服务器,后面会记录如何将文件备份到其它服务器
踩坑记录:
1. 添加了定时执行任务后,发现一直没有执行,当前之前的数据库备份的命令又执行了,后来参考网上说的加个日志输出,才知道是因为权限不足导致命令执行失败,解决方法就是给sh文件加可执行权限,使用 chmod +x /backup/backup_file.sh 加上权限即可。
2. 刚开始使用sh backup_file.sh时一直会报错:无法获取"/home/examxx\r" 的文件状态(stat): 没有那个文件或目录,目录明明在存在的,但是一直报这个错,原因是因为我是在windows环境使用的backup_file.sh文件,然后上传至liunx服务器上面的,windows与liunx的换行符是不一样的,所以liunx识别的目录是包含/r的,解决方法就是在原来linux服务器上面打到一个可以执行的sh文件,然后在这个文件的基础上去编辑,重新保存即可。
在windows上面创建的文件上传到liunx上面执行还有可能会这个错误:语法错误: 未预期的文件结尾,原因和解决方法也和上面的方法一样,
liunx下自动备份文件夹的更多相关文章
- Debian下自动备份文件并上传到远程FTP服务器且删除指定日期前的备份Shell脚本
说明: 1.备份目录/home/osyunwei下面所有的文件到/home/osyunweibak里面,并且保存为osyunwei20120701.tar.gz的压缩文件格式(2012_07_01是 ...
- Linux 定期自动备份文件夹脚本
根据网上代码改编而成,这个脚本分为两个文件,一个是执行文件backup.sh,另一个是备份项目文件backup.txt.backup.txt这个文件比较好理解,就是一个text文件,它的每一行表示一个 ...
- 用批处理文件自动备份文件及文件夹,并自动删除n天前的文件
原文:用批处理文件自动备份文件及文件夹,并自动删除n天前的文件 ---恢复内容开始--- 下是备份的批处理,添加到"计划任务"中,设定时间自动运行 复制代码 代码如下:@echo ...
- Windows下使用7-zip命令自动备份文件
在上一篇博文中,介绍了使用WinRAR自动备份文件,后来改用了腾讯云服务器,上面默认没有安装WinRAR,只有7-zip,又不想在服务器上安装许多软件,就查了下7-zip的命令,贴出来备忘~ 系统环境 ...
- Linux下自动删除过期备份和自动异地备份
每天自动删除过期备份 首先编写一个简单的Shell脚本DeleteExpireBackup.sh: #!/bin/bash # 修改需要删除的路径 location="/database/b ...
- Liunx下的有关于tomcat的相关操作 && Liunx 常用指令
先记录以下liunx下的有关于tomcat的相关操作 查看tomcat进程: ps-ef|grep java (回车) 停止tomcat进程: kill -9 PID (进程号如77447) (回车) ...
- 在CentOS下自动备份mysql
在CentOS下自动备份mysql数据库,并差异同步到其它网络主机上 1.在/root/mysql_backup/下添加backup.sh:vim /root/mysql_backup/backup. ...
- 在linux和windows下自动备份数据库
摘要: 详细介绍在windows和linux下自动备份数据库的过程,希望可以让新手立即上手吧! 本文档内容共分为2大部分:linux和windows Linux和windows都分为:准备工作和操作阶 ...
- Linux下自动备份MySQL数据库并上传到远程FTP服务器
Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明: 1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...
- linux下各文件夹的结构说明及用途介绍
linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /ho ...
随机推荐
- Longest Consecutive Sequence——LeetCode进阶路
原题链接https://leetcode.com/problems/longest-consecutive-sequence/ 题目描述 Given an unsorted array of inte ...
- odoo16里面的常用方法
一.全局搜索与显示 def name_get(self): res = [] for order in self: name = order.name if order.draw_number: na ...
- Ubuntu部署tensorflow(CPU/GPU)方法
本文介绍在Linux操作系统的发行版本Ubuntu中,配置可以用CPU或GPU运行的Python新版本深度学习库tensorflow的方法. 在文章部署CPU与GPU通用的tensorflow ...
- 论文解读:Aging with GRACE: Lifelong Model Editing with Discrete Key-Value Adapters
论文发表于人工智能顶会NeurIPS(原文链接).当前的模型编辑器会因多次编辑损害模型性能,提出用于连续编辑的通用检索适配器(General Retrieval Adapters for Cont ...
- ArkUI-X构建Android平台AAR及使用
本教程主要讲述如何利用ArkUI-X SDK完成Android AAR开发,实现基于ArkTS的声明式开发范式在android平台显示.包括: 1.跨平台Library工程开发介绍 2.AAR在And ...
- MyBatisPlus逆向工程
MyBatisPlus逆向工程 一.创建Springboot工程 二.引入pom依赖 <?xml version="1.0" encoding="UTF-8&quo ...
- Scratch之Android的Animation动画的四种动画效果——透明度渐变动画
废话不多说,先上图为敬 效果演示 编写的程序展示 讲话开始: 怎么想到的 在平时上课的时候,有一个学生拿着他好基友写的游戏程序给我看,最开始写的原型是叫虚像的积木块程序.通过一个局部变量开关控制虚像是 ...
- 鸿蒙运动项目开发:封装超级好用的 RCP 网络库(下)—— 实战应用
鸿蒙核心技术##运动开发## Remote Communication Kit(远场通信服务) 在之前的文章中,我们详细介绍了如何封装一个功能完备的 RCP 网络库,并探讨了其核心功能和高级特性.在本 ...
- 微软开源 Azure Functions MCP Extension
Azure Functions MCP Extension 是微软推出的开源扩展库,旨在将 Azure Functions 与模型上下文协议(Model Context Protocol, MCP) ...
- hbuilderx打包ios应用和上传应用商店最简单方法
hbuilderx是一个跨平台的开发软件,一般的软件公司,电脑使用的是windows系统. 那么windows有没有办法开发ios应用呢,因为ios的证书和上传,好像都需要mac电脑来完成. 其实,国 ...