当前位置:  技术问答>linux和unix

SHELL脚本 求助

    来源: 互联网  发布时间:2017-04-10

    本文导语:  本帖最后由 b13272012771 于 2013-05-02 21:38:10 编辑 最近学shell,求助一下,shell脚本如下: ------------------------------脚本开始---------------------------- #设置数据库名,密码,备份路径,日志路径,数据库文件闻之,以及备份方...

本帖最后由 b13272012771 于 2013-05-02 21:38:10 编辑
最近学shell,求助一下,shell脚本如下:

------------------------------脚本开始----------------------------
#设置数据库名,密码,备份路径,日志路径,数据库文件闻之,以及备份方式
#默认的备份方式是tar ,还可以是mysqldump,mysqldoccopy
#默认情况下,用root登录mysql数据库,备份至/root/dbxxxxx.tgz
#!/bin/bash
#This is a ShellScript For Auto DB BackuP
#Powered BY xx
#Setting
DBName=mysql
DBUser=root
DBPasswd=888888
BackupPath=/home/xx/mysql
LogFile=/home/xx/mysql/mysql.log
DBPath=/var/lib/mysql/
#BackupMethod=mysqldump
#BackupMethod=mysqlhotcopy
#BackupMethod=tar
#setting end

NewFile="$BackupPath"db$(date +%y%m%d).tgz

DumpFile="$BackupPath"db$(date +%y%m%d)
OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz
echo "----------------------------------------" >>$LogFile
echo $(date +"%y-%m-%d %H:%M:%S")>>$LogFile
echo "----------------------------------------" >>$LogFile

#Delete Old File
if[-f $OldFile ]
then
rm -f $OldFile>>$LogFile 2>&1
echo "[$OldFile] Delete Old File Success!">>$LogFile
else
echo "[$OldFile] No Old File !">>$LogFile
fi

if[-f $NewFile]
then
echo "[$NewFile] The Back File Is exists,Cann't Backup">>$LogFile
else
case $BackupMethod in
mysqldump)
if[-z $DBPasswd]
then
mysqldump -u $DBUser --opt $DBName > $DumpFile
else
mysqldump -u $DBUser -p $DBPasswd -$DBName > $DumpFile
fi
tar czvf $NewFile $DumpFile >> $LogFile 2>&1
echo "[$NewFile] Back up Success !" >> $LogFile
rm -rf $DumpFile
;;
mysqlhotcopy)
rm -rf $DumpFIle
mkdir $DumpFile
if[-z $DBPasswd]
then
mysqlhotcopy -u $DBUser $DBName $DumpFIle >> $LogFile 2>&1
else
mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpDFile >> $LogFile 2>&1
fi
tar czvf $NewFile $DumpFile >> $LogFile 2>&1
echo "[$NewFile] Back up Sucess !" >> $LogFile
rm -rf $DUmpFile
;;
*)
/etc/nint.d/mysqld stop > /dev/null 2>&1
tar czvf $NewFile $DBPath$DBName >> $LogFile 2>&1
;;
esac
fi
echo "----------------------------------------" >> $LogFile
---------------------------------脚本结束----------------------


报错信息如下:
./mysql_backup.sh: 行 28: if[-f /home/xx/mysqldb130427.tgz ]: 没有那个文件或目录
./mysql_backup.sh: 行 29: 未预期的符号 `then' 附近有语法错误
./mysql_backup.sh: 行 29: `then'

求助~~

|
if[-f $NewFile]
像这种判断,都有添加空格,改为if [ -f $NewFile ]

下面还有几个if判断,都加上空格

|
BackupPath=/home/xx/mysql
LogFile=/home/xx/mysql/mysql.log
DBPath=/var/lib/mysql/

|
检查一下目录存不存在。

|
if ....; then
  ....
fi
顺便帮你找了个参考:http://www.worlduc.com/blog2012.aspx?bid=3216739

    
 
 

您可能感兴趣的文章:

  • shell脚本如何调用另外一个shell脚本的函数?
  • 急救!关于Shell脚本删除过期文件的问题,Shell脚本达人乱入
  • shell 脚本中命令别名在脚本外无法使用
  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • C语言调用shell脚本后,通过何种方法能获取脚本中变量的值
  • 想用shell脚本定时执行另一个脚本
  • 一个shell执行另一个带参数shell脚本????????????
  • 如何给shell脚本加密,脚本中有密码。最好是比较直接的,不要说让用 shc
  • Shell脚本调用Sql脚本并向其中传递变量
  • 请问,Shell中如何执行另外一个Shell脚本?
  • 如何传递参数给linux shell 脚本(当脚本从标准输入而不是从文件获取时)
  • nohup执行的shell脚本,全局变量不能传递到脚本中使用吗?
  • cd、zip等命令在shell提示符下能执行,在shell脚本中为什么不能执行呢?
  • shell脚本问题 关于父脚本和子脚本的问题
  • shell脚本错误输出
  • 请教shell脚本启动程序
  • 关于shell脚本的。
  • 关于arm linux下的别名配置脚本如何在进入用户时让shell执行的问题,如bashrc,profile,.bash_profile等脚本,寻求高手解答
  • 高分请教关于Shell脚本执行中断问题?
  • linux shell脚本
  • 求助关于Java调用shell再传值给shell的问题
  • 求助!!shell调用问题
  • 求助shell 如何判断目录是否空,或者不为空?
  • 有关shell的小问题,紧急求助!
  • [求助]一个shell查询文件名的问题
  • crontab无法启动shell脚本,求助!
  • 求助SHELL程序
  • 求助:一道简单的shell编程题目
  • 求助shell编程的打印问题
  • 求助几个SHELL脚本 我是 新手
  • 【在线急等求助】UNIX-shell程序,对文本文件进行操作
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 不同类型的shell*(K SHELL , C SHELL) 用命令怎么切换?
  • linux bash shell命令:grep文本搜索工具简介
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 菜鸟问问题:shell是什么呢?普通的ls、cp、pwd这些命令算不算shell呢?如何把自己写的文件变成shell呢?
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • shell变量和子shell的问题请教
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • 请问“当前shell”和“子shell”的区别?
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)
  • 怎么知道当前是B_SHELL 还是C_SHELL
  • 用户登陆后运行某SHELL退出SHELL就回到LOGIN是怎么作到的?
  • 怎么写shell代码 写好shell怎么运行?
  • 请问一个shell中如何获取这个shell自身抛出的错误?
  • 非登录shell是什么 意思,和登录shell有什么区别啊
  • Solaris 8中修改root的shell为一个非法的Shell后怎么办?
  • 各位Shell高人,如何取得Shell的第10个入口参数?$10不行啊,急!
  • shell 编程 执行shell新建多个终端 并执行程序
  • 如何在一台机器上的shell中执行另外一台机器上的shell
  • 在shell中的交互问题,现在需要在shell结束时按某键或任意键


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,