shell 备份删除指定文件

shell 备份删除指定文件,第1张

如下:

脚本部分,这个脚本用crontab定时每月10运行一次。

mkdir -p /tmp/xxx

cd dest-dir

find  -type f -mtime +10 |xargs -i -t  mv -f "{}" /tmp/xxx >/dev/null 2>&1

cd /tmp

tar -zcv -f  xxxtargz /tmp/xxx

首先确定几个问题:

1、主目录路径,备份文件存放路径,要么给脚本自己加上去也行

2、备份完数据后,主目录下的文件删不删,不删的话相当于每天备份全量,删除的话每天备份增量

3、备份规则是当天备份前一天的还是当天备份当天的,如果实时有数据,建议备份前一天,如果固定时间有数据,那么备份当天的即可。

#!/bin/bash

sdir=

ddir=

logfile=/backup-$(date -d "yesterday" +%Y-%m-%d)log

tar -zcvf $ddir/mybackup-$(date -d "yesterday" +%Y-%m-%d) $sdir/ --remove-files &> $logfile

脚本如上,对应三个问题的解释

1、sdir指定要备份的目录,ddir指定备份文件存放的目录

2、脚本中归档压缩命令那一行--remove-files是压缩后删除源文件的意思,对应删除主目录下的文件,如果不需要删除,去掉这个参数就行了

3、最后在需要执行的用户下执行crontab -e(里面的编辑方式和vim一样)

0 0 /bin/sh /#这里是脚本所在的目录/#脚本名称

:wq保存退出,执行crontab -l能看到这个任务即可,时间的话按自己的需要根据实际情况定义,这里定义每天的0点执行。

在dbaccess前加上绝对路径

或者在shell脚本里面在执行dbaccess命令前,先改变工作路径到相应位置。

------------------

需要在脚本里增加环境变量设置

set CLIENT_LOCALE=EN_USCP1252

set DB_LOCALE=EN_US8859-1

set SERVER_LOCALE=EN_USCP1252

set DBLANG=EN_USCP1252

以上就是关于shell 备份删除指定文件全部的内容,包括:shell 备份删除指定文件、Shell程序实现每天将主目录下的所有目录和文件归档 并压缩为文件mybackup.tar.gz然后让脚本开机自动运行、我写了一个shell备份表,手动可以执行,但是在crontab里无法执行,报:dbaccess not fount错误。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存