2012-07-28 3 views
-1

스크립트를 작성했고 다음 오류가 계속 발생합니다. 사용자 ZUL '@ 거부 액세스가'로컬 호스트 (암호를 사용 : 예)MySQL 데이터베이스를 백업하는 Bash 스크립트

PROJ 연결할 때 : 43 : [D : 발견되지

PROJ : 43 : [D :

를 찾을 수 없음 입력을 읽지도 않고 MySQL에 연결도하지 않습니다. 어떤 아이디어? 나는 당신의 경우-다른 시험에서 누락 공간이있는 것 같다

#!/bin/bash 

tstamp=$(date +$s) 

#Dump or Update 
if [ -z "$1" ]; then 
    echo -n "What do you want to do? [D]ump or [U]pdate: " 
    read parm 
else 
    parm=$1 
fi 

#Database Name 
if [ -z "$2" ]; then 
    echo -n "What database are you using?" 
    read dbname 
else 
    dbname=$2 
fi 

#Database User 
if [ -z "$3" ]; then 
    echo -n "What database user are you using?" 
    read dbuser 
else 
    dbuser=$3 
fi 

#Database Password 
if [ -z "$4" ]; then 
    echo -n "What password are you using?" 
    read dbpass 
else 
    dbpass=$4 
fi 


#Checks if the directory exists 
if test ! -d "/home/zul/sql/backup"; then 
    mkdir /home/zul/sql 
    mkdir /home/zul/sql/backup 
fi 

mysqldump $dbuser -p$dbpass $dbname > /home/zul/sql/backup/$tstamp.$dbname.sql 

if [$parm = d ]; then 
    mysqldump $dbuser -p$dbpass $dbname > /home/zul/sql/backup/$dbname.sql 
elif [$parm = u ]; then 
    mysqldump $dbuser -p$dbpass $dbname < /home/zul/sql/backup/$dbname.sql 
else 
    echo " d or u option only! (lower case)" 
fi 
+0

아니다 기본적으로 mysqldump를 호출하는 커맨드 라인을 구성하고 있는가? 나는 그러한 스크립트의 유용성에 의문을 제기 할 것이다. 그것은 나에게 적어도 한두 가지 더 많은 이익을 유지하면서 유지하는 것처럼 들린다. –

+0

스크립트를'bash -vx'로 실행하려고 시도 했습니까? 이것은 ('[D 많은 도움이 당신이 당신의 버그 –

답변

2

: 여기

내 스크립트이다
[ test ]되어야하고 있지

if [ $parm = d ]; then 
    mysqldump $dbuser -p$dbpass $dbname > /home/zul/sql/backup/$dbname.sql 
elif [ $parm = u ]; then 
    mysqldump $dbuser -p$dbpass $dbname < /home/zul/sql/backup/$dbname.sql 
else 
+0

발견 할 것이며, 그 이유는이 명령 인 test' ['로 해석된다는 점이다 :하지 found' - 의미,'라는 어떤 명령도 없다 [d') –

+0

감사합니다. 모든 아이디어가 사용자 'zul'@ 'localhost'에 대한 액세스가 거부 된 이유는 무엇입니까? 올바른 암호를 입력했지만 여전히 오류가 발생합니다. –

+0

zul은 localhost에서 연결할 수 없습니다. –

1

당신은 구분해야 [test ] ' '공백으로 인수에서 :

if [ $parm = d ]; then 
    mysqldump $dbuser -p$dbpass $dbname > /home/zul/sql/backup/$dbname.sql 
elif [ $parm = u ]; then 
관련 문제