分库分层备份 初步探究
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分库分层备份 初步探究相关的知识,希望对你有一定的参考价值。
看了26期王导的关于mysql分库分层备份的视频以后,对于脚本的编制产生了兴趣,但是苦于不知道mysql,对于其中的一些命令 和一些数据的获取比较无力。但是又手痒 用了3个小时的宝贵学习时间 编了一个小脚本。
脚本要求:现在在/tmp下有一个dir的文件,里面存放了7个目录的名字,每个名字一行。还有7个形如dirx_file的文件,里面存放了该目录下应该有的文件。现在的要求是将文件和目录都建立出来。并且按目录的集合压缩到tmp下。
脚本:
[[email protected] ~]# vim test.sh
DIRSOURCE=/tmp/dir
for n in $(cat $DIRSOURCE)
do
[ -d /test/$n ] || mkdir /test/$n
FILESOURCE=/tmp/${n}_file
for m in $(cat $FILESOURCE)
do
touch /test/$n/$m
done
cd /test;tar zcf /tmp/test${n}_$(date +%F).tar.gz $n
done
过程总结:在最开始的时候 环境变量DIRSOURCE定义的是cat /tmp/dir。
出现如下提示test.sh: line 1: /tmp/dir: Permission denied。
初时以为是权限不足,使用chmod命令给test.sh加上了x权限。后来还是出现这种问题。
仔细回想了一下王导视频中关于这部分的信息,想起了他后面引用前面的变量好像是作为一个路径。
这部分内容因为对环境变量了解不足,所以就试验了下去掉命令,发现脚本可以运行。姑且先这么记,等以后老师详细讲解环境变量的时候再弄。
目前对环境变量的知识只知道在profile最后添加语句export可以设置环境变量。
然后继续运行,发现报错 test.sh: line 14: syntax error: unexpected end of file。
自习检查发现最后done没有加,之前学过的C语言印象中是一个do就要配一个done,这个问题主要是编程习惯的问题,以后需要注意一下。
错误修正 继续运行 提示command ‘-d‘不识别。
对照视频检查了一下 发现没有问题,猜想可能是中括号内的东西要和中括号之间留有空格。加上空格以后,程序正常运转。
总结:经过这个脚本 对环境变量有了一些模糊的理解,而且对for语句的理解也更加深刻。
后续:过几天以后,将脚本设置成定时任务,并且在TMP下建立对应的目录。是寻找的时候更加方便。
以上是关于分库分层备份 初步探究的主要内容,如果未能解决你的问题,请参考以下文章