在CentOS上备份,常常使用tar进行打包,备份到远程目录可使用rsync或mount映射远程目录,删除过时备份可使用find,rm,自动执行可使用sh脚本和crontab配合。php
提醒你们,全部脚本请在CentOS下编辑,请勿在windows下编辑后上传,容易出现格式问题,不能正常执行。linux
如今已一台CentOS 7服务器,须要备份的目录,/var/backup 。备份到SMB共享做为例子说明windows
首先安装SMB共享支持,否则mount会出错bash
yum install cifs-utils
经过 mount ,将远程windowns域环境的SMB共享映射到本地目录服务器
创建映射目录dom
mkdir /home/backup
映射远程目录ide
mount -t cifs -o username="用户名",domain="域名",password="密码" //远程服务器/目录 /home/backup
测试备份命令
测试
进入须要备份目录的上级目录spa
cd /var
使用tar打包须要备份的目录到映射目录,tar 格式,tar -参数 /备份文件存放地址 /备份目录。orm
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
推荐鸟哥的第二十章、基礎系統設定與備份策略。里面描写更详细和清晰。