0

コマンドを実行しようとしていますが、コマンドが長すぎて、コマンド ラインから実行するには長すぎます。だから私はそれをシェルスクリプトに入れようとしています.そして、シェルスクリプトを実行するだけで、非常に長いUNIXコマンドが実行されます.

明らかにヘッダーが必要で、その後にコマンドが続きます。このシェル スクリプトが機能するようにするには、どのような構文を追加する必要がありますか?

 #!/bin/sh
./mysqldump --defaults-file=../../conf/mysql.conf --single-transaction \
   --ignore-table=st.Event --ignore-table=st.TransferStatus  \
   --ignore-table=st.TransferConfiguration --ignore-table=st.TransferData \ 
   --ignore-table=st.logging_event --ignore-table=st.logging_event_exception \ 
   --ignore-table=st.logging_event_property \
   -u root -pXXXXXXXX st > /tmp/database_backup.sql
4

2 に答える 2

0

構文に関する限り、あなたのシェルスクリプトは私には問題ないようです...

私が注意することは、スクリプト内のすべての相対パス、より具体的./mysqldumpには../../conf/mysql.conf. 相対パスを使用するには、スクリプトが常にファイルシステム内の特定のディレクトリから実行される必要があります。絶対パスを使用すると、スクリプトが特定の場所にバインドされますが、スクリプトがより安全になります。

どうしても相対パスを使用する場合は、スクリプトを実行元のディレクトリに配置し、絶対パスを使用して呼び出すことができます。

スクリプトを実行するには、chmod +x(またはそのバリエーション) を使用してファイルを実行可能にするか、引数としてそれを渡す必要がありshますsh /path/to/my/script.sh

現在のスクリプトの正確な問題について言及していただければ、さらにお役に立てるかもしれません...

于 2012-12-28T19:38:41.390 に答える
0

./また、このコマンドのエイリアスを作成することもできます (http://linuxreviews.org/quicktips/alias/) 。コマンドの準備ができたらchmod +x、ファイルを忘れないでください。.sh

次のサンプルをご覧ください: http://bash.cyberciti.biz/backup/backup-mysql-database-server-2/

MYSQLDUMP="$(which mysqldump)"
$MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS $db
于 2012-12-27T20:46:09.563 に答える