• 締切済み

WinSCPのbatファイル

WinSCPをbatファイルでミラーリングアップロードしたい

みんなの回答

回答No.4

サーバーを、管理しているのが誰なのかわかりませんが、別にいるのなら、管理者にお願いしてみることです。 個人のサーバーで自分が管理しているのであれば、 RLogin などで、サーバーにアクセスして echo ".profile is loaded" >> ~/load_log.txt echo ".bashrc is loaded" >> ~/load_log.txt を、実行して cat ~/load_log.txt コマンドで load_log.txt を確認する .profile is loaded .bashrc is loaded などが、返ってきてどちらも読み込まれていることがわかったら、 両方ともに if [ -t 1 ]; then echo "Old messages, etc..." fi 追記すればいいと思います。 自分の情報は出さないで、アドバイスだけを手短な言葉で求めても、答える範囲が広すぎて、具体的なアドバイスができないことは承知しておいてもらいたいものです。

masterkentaros
質問者

補足

情報不足だったのですね失礼しました。 サーバーはレンタルサーバーを使用しています。 ということは今回のWinSCPでの接続はできないということでしょうか?

回答No.3

このエラーは、SFTPサーバーに接続しようとした際、スタートアップスクリプトからの出力メッセージが原因で通信が正しく行えないときに発生します。サーバーの.profileや.bashrcなどのスタートアップスクリプトが通常のコマンドライン出力にメッセージを出力している場合、SFTP通信に影響が出ることがあります。 サーバー側で.profileや.bashrcといったスタートアップスクリプトを確認し、SSHセッション時にのみメッセージが出力されるように条件を加えます。

masterkentaros
質問者

補足

if [ -t 1 ]; then echo "Old messages, etc..." fi をbatファイルに加えたのですが、pauseがあるのに停止せずそのまま終了しました。 特にFTPの更新処理が行われた形跡はありません。

回答No.2

サーバーの.profileや.bashrcといったスタートアップスクリプトで次の設定を行えば、通常のSSHログイン時にはメッセージが表示され、SFTPでは表示されないようになります。 if [ -t 1 ]; then echo "Old messages, etc..." fi

masterkentaros
質問者

補足

いわれてることがわからないので、もう少し詳しくお願いします。

回答No.1

1. WinSCPのスクリプト作成 まず、アップロードに使用するスクリプトを .txt ファイルとして作成します。たとえば、winscp_script.txt という名前で保存します。内容は以下のように書きます。 # WinSCP Script open sftp://username:password@host # ミラーリングアップロードするディレクトリを指定 synchronize remote "ローカルディレクトリパス" "リモートディレクトリパス" # プログラムを終了 exit username と password をあなたのアカウント情報に置き換えてください。 host は接続するサーバのホスト名やIPアドレスです。 "ローカルディレクトリパス" と "リモートディレクトリパス" にそれぞれアップロード元と先のパスを指定します。 2. バッチファイル作成 次に、上記スクリプトを実行するバッチファイルを作成します。upload.bat として保存します。内容は以下のように記述してください。 @echo off "C:\Program Files (x86)\WinSCP\WinSCP.com" /script="winscp_script.txt" pause C:\Program Files (x86)\WinSCP\WinSCP.com のパスは、WinSCPのインストールパスに合わせてください。 pause は実行後にコマンドプロンプトが閉じないようにするためのものです。 3. バッチファイルの実行 upload.bat をダブルクリックで実行すると、WinSCPが起動してミラーリングアップロードが開始されます。バッチファイルにスケジュールタスクを設定して自動実行させることもできます。

masterkentaros
質問者

補足

実行したのですが、以下のようなエラーが出て何も起きませんでした。 サーバを探索中・・・ サーバに接続しています・・・ 認証しています・・・ ユーザ名"???" を使用中 入力済みパスワードで認証中 認証されました セッションを開始しています・・・ 大きな SFTP パケット(1332503584 B)を受信しました。サポートしている最大パケット サイズは 1024000 B です。 このエラーは(.profile といった)スタートアップ スクリプトによって表示されたメッセージによるものです。メッセージが ""Old "" で始まっています。 SFTP プロトコルを初期化できません。SFTP サーバが起動していますか? 続行するには何かキーを押してください . . .

関連するQ&A