linux自动备份文件 并上传到远程服务器 脚本实现

时间:2021-08-05 00:30:42

(1)在服务器上创建备份目录,并赋予权限

      mkdir -p /backup/bakdata  #新建数据备份目录
(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点 系统会自动完成数据库的备份,压缩,并上传到远程服务器的指定路径下