- ベストアンサー
FTPにより自動でファイルをサーバ間移動させたい
- 初心者の方がシェルスクリプトを使って、サーバ間でファイルを自動的に移動させる方法について質問しています。
- 具体的には、レンタルサーバAから自作サーバBにFTP接続し、AのバックアップファイルをBにコピーして削除するスクリプトの作成についての問題があります。
- すでにスクリプトの作成は進んでおり、一部ファイルはコピーできているものの、全てのファイルのコピーと削除がうまく動作しません。解決策やスクリプト内の記述方法についてアドバイスを求めています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> このEOF とか _EODの意味 その文字自体には区切りとしての意味はありません。 「ヒアドキュメント」といいます。 > mget bak-mysql-20121207.sql.gz? mget bak-root-20121207.tar.bz2? mget bak-mysql-20121209.sql.gz? mget bak-root-20121209.tar.bz2? mget bak-mysql-20121208.sql.gz? mget bak-root-20121208.tar.bz2? 手動でやってみてください。 mgetに対して mget bak*.* とすると mget bak-mysql-20121207.sql.gz? となどと、実際にgetするかどうかを聞いてくるので、 yまたはnを入力したりしてるのでは? そこで、n以外だと実行とかになっているかと思います。 で、そのスクリプトでの次の入力が、コマンドではなく、そのy/nに対して入力されます。つまり, mget bak-mysql-20121207.sql.gz? に mdelete bak.*.* と入力したような状態になります。 ただ、この入力が表示されないので、見掛けでは改行のない mget bak-root-20121207.tar.bz2? mget bak-mysql-20121209.sql.gz? mget bak-root-20121209.tar.bz2? mget bak-mysql-20121208.sql.gz? mget bak-root-20121208.tar.bz2? と見えます。 ftpが対応していれば prompt off 等でy/nを聞かずに実行します。 あるいは、そういう自動転送に特化したツールを使うのがよいかと。
お礼
kmee様 以前にも助けていただきました 今回もありがとうございました >その文字自体には区切りとしての意味はありません。 >「ヒアドキュメント」といいます。 ありがとうごさいました 検索して勉強させてもらいます >実際にgetするかどうかを聞いてくるので、 yまたはnを入力したりしてるのでは? まさしくその状態でした >ftpが対応していれば prompt off 等でy/nを聞かずに実行します。 prompt off をスクリプトに記載して実行したら、きれいにコピーして くれて、消去もできました ありがとうございました