linux自动备份文件 并上传到远程服务器 脚本实现
(1)在服务器上创建备份目录,并赋予权限
(2)完成备份脚本操作
新建脚本文件
vi bakdata.sh
添加以下内容:
#!/bin/sh
dateTime=`date +%Y_%m_%d` #当前系统时间
days=7 #删除7天前的备份数据s
orowner=bakuser # 备份到此用户下
bakdescdir=/DATA/bakmdata #备份文件到该路径
bakdata=$orowner"_"$dateTime.tar.gz #备份文件名
baklog=$orowner"_"$dateTime.log #备份日志
baksrcdir=/DATA/www/moodledata #需要备份的文件
remotePath=/DATA/moodle/bakmooldedata #远程服务器的路径
cd $bakdescdir #进入备份目录
mkdir -p $orowner #按需要备份的用户创建目录
cd $orowner #进入目录
echo "backup start at $dateTime" > $baklog
echo "--------------------------" >>$baklog
tar -zcvf $bakdata $baksrcdir $baklog #压缩备份文件和日志文件
find $bakdescdir/$orowner -type f -name "*.log" -exec rm {} \; #删除日志文件
find $bakdescdir/$orowner -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \;#删除7天前的备份(注意:{} \中间有空格)
scp $bakdescdir/$orowner/$bakdata 10.6.108.79:$remotePath #上传到远程服务器
(3)添加脚本执行权限
chmod +x /backup/oracledata/ordatabak.sh
(4)编辑系统任务执行计划
crontab -e
输入一下信息“:
00 01 * * * /DATA/bakdata/bakdata.sh#每天凌晨1点,以oracle用户执行ordatabak.sh备份文件
:wq! #保存退出
重启crontab
service crond restart
从此每天的凌晨1点 系统会自动完成数据库的备份,压缩,并上传到远程服务器的指定路径下