2017-03-05 1 views
0

임 리눅스에서 데이터베이스 호스트, 데이터베이스 이름, 사용자 이름 및 비밀번호를 wp-config.php에서 수집하고이를 .sh 파일로 데이터베이스를 가져올 수있는 라인으로 결합하려고합니다.데이터베이스를 가져 오기위한 온라인 작성

내가 수집해야하는 코드의 블록은

입니다 :

/** The name of the database for WordPress */ 
define('DB_NAME', 'database_name_here'); 

/** MySQL database username */ 
define('DB_USER', 'username_here'); 

/** MySQL database password */ 
define('DB_PASSWORD', 'password_here'); 

/** MySQL hostname */ 
define('DB_HOST', 'localhost'); 

내가 만들려고 해요 라인은 다음과 같습니다

mysql -h localhost -u username_here --password="password_here" database_name_here < db-backup.sql

내가 지금 내가 가지고있는이 새로운 해요 하려고하면 :

grep DB_HOST DB_USER wp-config.php | cut -d "'" -f4 | awk '{print "mysql -h "$0;}'이 시작은 작동하지만, 마지막 부분을 얻는 문자열에 정보를 추가하고 싶을 때.

모든 정보가 포함 된 전체 행을 얻으려면 어떻게 작성해야합니까?

답변

0
MYSQLPWD=$(cat wp-config.php |grep DB_PASSWORD | cut -d \' -f 4) 
MYSQLUSR=$(cat wp-config.php |grep DB_USER | cut -d \' -f 4) 
MYSQLDBNAME=$(cat wp-config.php |grep DB_NAME | cut -d \' -f 4) 
HT="localhost" 

echo $MYSQLPWD 
echo $MYSQLUSR 
echo $MYSQLDBNAME 
echo $HT 

mysql -h$HT -u$MYSQLUSR -p$MYSQLPWD $MYSQLDBNAME < $MYSQLDBNAME 
+0

감사합니다. :) – Quarskel

0

하지 않는 한 줄,하지만이 간단한 예를 들어

DB_PASSWORD=$(grep DB_PASSWORD wp-config.php | cut -d "'" -f4) 
DB_USER=$(grep DB_USER wp-config.php | cut -d "'" -f4) 
DB_NAME=$(grep DB_NAME wp-config.php | cut -d "'" -f4) 
DB_HOST=$(grep DB_HOST wp-config.php | cut -d "'" -f4) 

echo "mysql -h $DB_HOST -u $DB_USER --password=\"$DB_PASSWORD\" $DB_NAME" 

몇 가지주의를 작동 : 당신이 AWK 필요하지 않습니다, 당신은 단지 문자열을 연결하는 데 사용되는, 그래서 그것을 제거. 그리고 입력 파일의 해당 라인의 검출 그것은 DB_NAME에 대한 일치로 그 선을 감지 할

/** we are using blabla as DB_NAME because <reasons> **/ 

입력 파일의 주석이 존재하는 경우는 예를 들어, 여러 가지 혼동 할 수있다, 완벽하지 않습니다 . 또한 정확히 일치하는 줄 하나를 갖는 것이 중요합니다.

관련 문제