每天备份showdoc数据库 [宝塔shell脚本]

老马一些群控使用说明在线文档用的是showdoc框架

为了保证showdoc上的资料不小心被其他员工改错乱了,因此需要做数据备份
showdoc采用的是sqllite 所以没办法直接用宝塔数据库备份
于是想到写个shell,随便查了下资料。会点编程都都很容易入门,

写完才发现早知道用php了【自己擅长的】直接每天访问指定php也可以达到目的。

不过写都写了还是发出来共享

DATE=`date +%Y-%m-%d` #定义时间 因为我按天备份的所以只要精确到天就行
www_path='/www/wwwroot/doc.98lm.com/'  #宝塔网站目录
www_data=$www_path$'/Sqlite/showdoc.db.php'   #要备份的数据 
BackDir=$www_path$'BackDir/'  #要备份的目录
log_text=$www_path$'info.log' #日志文本

if [ ! -d $BackDir ];then #判断是否有备份目录
       echo "empty BackDir_data exist " >$log_text
         mkdir -p $BackDir #-p为父类不存在则生成,存在不影响
fi

if [ ! -f $www_data ]; then #判断备份的数据是否存在
cp $www_data  $BackDir$DATE'.php' #复制文件
 echo $DATE$"suc">$log_text   
 cd $BackDir #进入备份目录
tar -zcvf $DATE.BD.tar.gz *  #压缩备份文件
find $lBackDir -mtime -1 -name "*.php" | xargs rm -f   #删除php文件
 fi

 

主要用到shell脚本知识点[无非就是判断]

文件夹不存在则创建

if [ ! -d “/data/” ];then
  mkdir /data
else
  echo “文件夹已经存在”
fi

文件存在则删除

if [ ! -f “/data/filename” ];then
  echo “文件不存在”
else
  rm -f /data/filename
fi

判断文件夹是否存在

if [ -d “/data/” ];then
  echo “文件夹存在”
else
  echo “文件夹不存在”
fi

判断文件是否存在

if [ -f “/data/filename” ];then
  echo “文件存在”
else
  echo “文件不存在”
fi

文件比较符

-e 判断对象是否存在
-d 判断对象是否存在,并且为目录
-f 判断对象是否存在,并且为常规文件
-L 判断对象是否存在,并且为符号链接
-h 判断对象是否存在,并且为软链接
-s 判断对象是否存在,并且长度不为0
-r 判断对象是否存在,并且可读
-w 判断对象是否存在,并且可写
-x 判断对象是否存在,并且可执行
-O 判断对象是否存在,并且属于当前用户
-G 判断对象是否存在,并且属于当前用户组
-nt 判断file1是否比file2新  [ “/data/file1” -nt “/data/file2” ]
-ot 判断file1是否比file2旧  [ “/data/file1” -ot “/data/file2” ]

剩下几个命令就是linux自带的命令

赞 (1)