由于系统会实时产生文件(如图片),为了保证数据不会因为系统崩溃或者黑客入侵等原因导致数据丢失,如果使用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 +/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下自动备份文件夹的更多相关文章

  1. Debian下自动备份文件并上传到远程FTP服务器且删除指定日期前的备份Shell脚本

    说明:  1.备份目录/home/osyunwei下面所有的文件到/home/osyunweibak里面,并且保存为osyunwei20120701.tar.gz的压缩文件格式(2012_07_01是 ...

  2. Linux 定期自动备份文件夹脚本

    根据网上代码改编而成,这个脚本分为两个文件,一个是执行文件backup.sh,另一个是备份项目文件backup.txt.backup.txt这个文件比较好理解,就是一个text文件,它的每一行表示一个 ...

  3. 用批处理文件自动备份文件及文件夹,并自动删除n天前的文件

    原文:用批处理文件自动备份文件及文件夹,并自动删除n天前的文件 ---恢复内容开始--- 下是备份的批处理,添加到"计划任务"中,设定时间自动运行 复制代码 代码如下:@echo ...

  4. Windows下使用7-zip命令自动备份文件

    在上一篇博文中,介绍了使用WinRAR自动备份文件,后来改用了腾讯云服务器,上面默认没有安装WinRAR,只有7-zip,又不想在服务器上安装许多软件,就查了下7-zip的命令,贴出来备忘~ 系统环境 ...

  5. Linux下自动删除过期备份和自动异地备份

    每天自动删除过期备份 首先编写一个简单的Shell脚本DeleteExpireBackup.sh: #!/bin/bash # 修改需要删除的路径 location="/database/b ...

  6. Liunx下的有关于tomcat的相关操作 && Liunx 常用指令

    先记录以下liunx下的有关于tomcat的相关操作 查看tomcat进程: ps-ef|grep java (回车) 停止tomcat进程: kill -9 PID (进程号如77447) (回车) ...

  7. 在CentOS下自动备份mysql

    在CentOS下自动备份mysql数据库,并差异同步到其它网络主机上 1.在/root/mysql_backup/下添加backup.sh:vim /root/mysql_backup/backup. ...

  8. 在linux和windows下自动备份数据库

    摘要: 详细介绍在windows和linux下自动备份数据库的过程,希望可以让新手立即上手吧! 本文档内容共分为2大部分:linux和windows Linux和windows都分为:准备工作和操作阶 ...

  9. Linux下自动备份MySQL数据库并上传到远程FTP服务器

    Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明:  1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...

  10. linux下各文件夹的结构说明及用途介绍

    linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令.   /dev:设备特殊文件.   /etc:系统管理和配置文件.   /etc/rc.d:启动的配 置文件和脚本.   /ho ...

随机推荐

  1. Longest Consecutive Sequence——LeetCode进阶路

    原题链接https://leetcode.com/problems/longest-consecutive-sequence/ 题目描述 Given an unsorted array of inte ...

  2. odoo16里面的常用方法

    一.全局搜索与显示 def name_get(self): res = [] for order in self: name = order.name if order.draw_number: na ...

  3. Ubuntu部署tensorflow(CPU/GPU)方法

      本文介绍在Linux操作系统的发行版本Ubuntu中,配置可以用CPU或GPU运行的Python新版本深度学习库tensorflow的方法.   在文章部署CPU与GPU通用的tensorflow ...

  4. 论文解读:Aging with GRACE: Lifelong Model Editing with Discrete Key-Value Adapters

      论文发表于人工智能顶会NeurIPS(原文链接).当前的模型编辑器会因多次编辑损害模型性能,提出用于连续编辑的通用检索适配器(General Retrieval Adapters for Cont ...

  5. ArkUI-X构建Android平台AAR及使用

    本教程主要讲述如何利用ArkUI-X SDK完成Android AAR开发,实现基于ArkTS的声明式开发范式在android平台显示.包括: 1.跨平台Library工程开发介绍 2.AAR在And ...

  6. MyBatisPlus逆向工程

    MyBatisPlus逆向工程 一.创建Springboot工程 二.引入pom依赖 <?xml version="1.0" encoding="UTF-8&quo ...

  7. Scratch之Android的Animation动画的四种动画效果——透明度渐变动画

    废话不多说,先上图为敬 效果演示 编写的程序展示 讲话开始: 怎么想到的 在平时上课的时候,有一个学生拿着他好基友写的游戏程序给我看,最开始写的原型是叫虚像的积木块程序.通过一个局部变量开关控制虚像是 ...

  8. 鸿蒙运动项目开发:封装超级好用的 RCP 网络库(下)—— 实战应用

    鸿蒙核心技术##运动开发## Remote Communication Kit(远场通信服务) 在之前的文章中,我们详细介绍了如何封装一个功能完备的 RCP 网络库,并探讨了其核心功能和高级特性.在本 ...

  9. 微软开源 Azure Functions MCP Extension

    Azure Functions MCP Extension 是微软推出的开源扩展库,旨在将 Azure Functions 与模型上下文协议(Model Context Protocol, MCP) ...

  10. hbuilderx打包ios应用和上传应用商店最简单方法

    hbuilderx是一个跨平台的开发软件,一般的软件公司,电脑使用的是windows系统. 那么windows有没有办法开发ios应用呢,因为ios的证书和上传,好像都需要mac电脑来完成. 其实,国 ...