shell脚本归档压缩指定文件
‘壹’ Shell程序实现每天将主目录下的所有目录和文件归档 并压缩为文件mybackup.tar.gz然后让脚本开机自动运行
首先确定几个问题:
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点执行。
‘贰’ 用shell压缩多个文件夹为zip
压缩为bcd.zip,保存在a文件夹中,如果要静默模式,zip命令加-q选项。
文件格式:
另指计算机文件压缩算法,原名真空,发明者为菲尔·卡茨,他于1989年1月公布了该格式的资料。
标准 ZIP 压缩文件格式分析:标准 zip 文件格式由三部分组成:zip 压缩数据段、中央目录区、中央目录区尾部。其中 zip 压缩数据段又分为 zip 文件头信息和压缩数据。如图 1、2、3 所示。带☆的是在文件修复中经常用到的。
(2)shell脚本归档压缩指定文件扩展阅读:
命令参数:
Copyright (C) 1990-1999 Info-ZIP
Type 'zip "-L"' for software license。
Zip 2.3 (November 29th 1999). Usage。
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]。
The default action is to add or replace zipfile entries from list, which。
can include the special name - to compress standard input。
If zipfile and list are omitted, zip compresses stdin to stdout。
-f freshen: only changed files -u update: only changed or new files。
参考资料来源:网络-Zip
‘叁’ SHELL脚本,解压缩指定目录下的ZIP文件到另一个目录下
#!/bin/bash
foriin$(ls/opt/bin/*.zip2>/dev/null)
do
unzip$i-d/opt/wep
done
‘肆’ 编写一个shell脚本每天16:30备份mysql数据并压缩打包(打包文件按照当天日期命名)放到/root/data下
#!/bin/bash
date=$(date-d'+0days''+%Y-%m-%d')#声明一个变量,并赋值当天日期
cd/root/data#进入目录
mkdir$date#创建目录
mysqlmp-uusername-ppassworddb_name>$date"db_name.sql"#数据库备份,修改用户名密码,还有要备份数据库
tar-zcf$date".tar.gz"$date#压缩打包
rm-rf$date#删除源数据
保存为bak.sh,每天16:30备份定时任务,没有crontab命令:yum install vixie-cron
chmod +x /.../bak.sh
crontab -e
30 16 * * * /.../bak.sh