linux自动备份shell

linux自动备份shell,第1张

#!/bin/bash

# Function: 压缩备份文件

src_dir="/data/"

bak_dir="/data.bak/"

while :

do

  # 现获取所有的目录

  cd $src_dir && dirs=`ls -l |egrep '^d' |awk '{print $NF}'`

  for dir in $dirs:

  do

    tar zcf ${dir}.tgz $dir  #压缩目录

    mv ${dir}.tgz $bak_dir   #移动压缩包到备份目录

  done

  sleep 5  #每5s钟检查一次

done #!/bin/bash

# Function: 解压备份文件

src_dir="/data/"

bak_dir="/data.bak/"

while :

do

  # 现获取所有的目录

  cd $bak_dir && tgzs=`ls *.tgz`

  for tgz in $tgzs:

  do

    tar xf $tgz -C src_dir  #将压缩包解压到src_dir目录下

    rm -f $tgz   #删除压缩包

  done

  sleep 5  #每5s钟检查一次

done

如上两个脚本差不多,只不过压缩和解压的 *** 作对调了一下,我临时写的,没有测试过,仅供参考,希望对你有帮助

每天定时备份mysql数据库任务,删除指定天数前的数据,保留指定天的数据;

需求:

1,每天4点备份mysql数据;

2,为节省空间,删除超过3个月的所有备份数据;

3,删除超过7天的备份数据,保留3个月里的

10号

20号

30号的备份数据;

#创建shell文件

vim

backup_mysql.sh

mysqldump

-uroot

-p123456

--all-databases

>

/data/dbdata/mysqlbak/`date

+%Y%m%d`.sql

find

/data/dbdata/mysqlbak/

-mtime

+7

-name

'*[1-9].sql'

-exec

rm

-rf

{}

\

find

/data/dbdata/mysqlbak/

-mtime

+92

-name

'*.sql'

-exec

rm

-rf

{}

\

#创建定时任务

crontab

–e

0

4

*

*

*

/data/dbdata/backup_mysql.sh


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9986383.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存