在CentOS上备份,经常使用tar进行打包,备份到远程目录可以使用rsync或mount映射远程目录,删除过期备份可以使用find,rm,自动执行可以使用sh脚本和crontab配合。
提醒大家,所有脚本请在CentOS下编辑,请勿在windows下编辑后上传,容易出现格式问题,不能正常执行。
现在已一台CentOS 7服务器,需要备份的目录,/var/backup 。备份到SMB共享作为例子说明
首先安装SMB共享支持,不然mount会出错
yum install cifs-utils
通过 mount ,将远程windowns域环境的SMB共享映射到本地目录
建立映射目录
mkdir /home/backup
映射远程目录
mount -t cifs -o username="用户名",domain="域名",password="密码" //远程服务器/目录 /home/backup
测试备份命令
进入需要备份目录的上级目录
cd /var
使用tar打包需要备份的目录到映射目录,tar 格式,tar -参数 /备份文件存放地址 /备份目录。
tar 参数,j 使用bzip2压缩,p 保留文件属性,c 创建新的存档,v 显示过程,脚本化时去除。
备份文件名增加生成日期时间的参数,$(date +%Y-%m-%d-%H%M%S)。
tar -jpcf /home/backup/backup.$(date +%Y-%m-%d-%H%M%S).tar.bz2 backup
自动删除七天前的备份文件,find /路径 -type f -mtime +7 -exec rm -f {} \;
-type f是指定文件类型为普通文件,-mtime +7是指7天之前的文件,#-exec rm -f指执行静默删除匹配出来的文件。
find /home/backup -type f -mtime +7 -exec rm -f {} \;
如果都测试成功,我们就可以开始编写备份脚本,记得将脚本更改为可执行文件
#!/bin/bash mount -t cifs -o username="用户名",domain="域名",password="密码" //远程服务器/目录 cd /var tar -jpcf /home/backup/mrcrm.$(date +%Y-%m-%d-%H%M%S).tar.bz2 mrcrm cd /home/backup find /home/backup -type f -mtime +7 -exec rm -f {} \; unmount /home/backup
脚本测试成功,我们可以使用自动执行命令让脚本自动在指定时间执行。
crontab -l 查看清单 -e 编辑
参考文章:
http://linux.vbird.org/linux_basic/0610hardware.php
推荐鸟哥的第二十章、基礎系統設定與備份策略。里面描写更详细和清晰。
时间: 2024-10-10 20:47:56