2012年02月04日

ファイルをPASV(パッシブ)モードでPCから転送する方法

自分のパソコンでホームページ、通販サイト等を作成した後にやらなければならないのはサーバーへのHTMLファイル/CSSファイル/画像ファイル等の転送です。

通常は、フリーのftpソフト等がたくさんありますのでこれを使えばいいわけですが、サイトや転送先サーバーが複数あった場合いちいちソフトを起動してからサーバーに転送という面倒くさいことしなければできませんでした。

ここでは、Windowsで使用できるftpコマンドを使用した転送方法をご紹介します。
(Macでもシェルスクリプトで同様に行えます)

1.サーバーに転送するためのファイルを作成します(さくらサーバーの場合)

ftp_comm.txtの中身
-----------------------------------------------------
open xxxx.sakura.ne.jp <-- サーバー名です
login12345 <-- サーバーのログインアカウントです
passwd1245 <-- サーバーのログインパスワードです
asc <-- htmlの場合はasc、画像はbinを指定
quote pasv <-- PASV(パッシブモードに指定する(※これが一番大事です)
cd www/abcd <-- 転送先のサーバーのディレクトリー名です(サーバー側のディレクトリーパス)
lcd ../shop <-- ftp転送をおこなうディレクトリーのパスです(PC側のディレクトリーパス)
put index.html <-- 転送したいファイル名(この場合、PC側のshopの中にindex.htmlが必要です)
disconnect <-- 転送終了後にサーバーを切り離す
bye
-----------------------------------------------------

2.転送のスクリプトファイル(バッチファイル)を作成します

ftp_put.txt
-----------------------------------------------------
del ftp_log1G.txt
ftp -s:ftp_comm.txt>>ftp_log.txt
-----------------------------------------------------
テキストファイルで作成したら、msdosのコマンドプロンプトを起動し
c:\Users\xxx> rename ftp_put.txt ftp_put.bat
のようにファイルをバッチファイルに変更します

3.実行方法
このファイル(ftp_put.bat)をダブルクリックまたは、このファイルをコマンドで実行します
c:\Users\xxx> ftp_put.bat

転送したログは、ftplog.txtに格納されます
(>>ftp_log.txtを外しておけば画面上に転送のログが出力されます)

実は、msdos上のFTP転送ではPASV(パッシブ)モードが使用できないのでFTP転送は使えないと思っていましたが、色々調べたところ相手のサーバーにPASVモードを認識させることができました。
quote pasv
この一行を入れるだけで転送エラーなしで送れるようになります。

私の場合、もしもドロップシッピングのサイトをたくさん持っているので、このスクリプトに全ての情報を入れて1クリックでファイル転送をおこなっています。
とても楽になりました。
手動でアイコンを移動したりする手間も省けるのでお勧めです。
posted by jun at 23:03| Comment(0) | ファイル転送

2012年01月18日

ファイルをサーバーに転送するには

サイトを作成したところでファイルをサーバーに転送しなければサイトを見ることはできません。

ファイルを転送するにはファイル転送ソフトが必要となります。

googleやyahooの検索窓で"ファイル転送ソフト"と検索すれば色々なものがありますが、いちばん簡単なのはffftpソフトです。
使用しているPCがWindowsであれば、フォルダーをサーバーに向けて移動するだけでファイル転送が行えます。
ただし、気おつけて欲しいのはサーバーによってはパッシブ(PASSIVE)モードでないと転送できないものがありますので詳細設定のパッシブモードをonにセットしてから転送をします。
(私が使用しているさくらのサーバーではこのモードをセットしないと転送時エラーになることがあります)
また、ホームページビルダー等をお持ちであればファイル転送のソフトが付いてきますのでこれを使用して転送することもできます。

ファイル転送は、一つ一つファイルを転送すると時間がかかるのと、日付が転送した時間に変わってしまいますのでパソコン側でファイル圧縮(.zip等)し、圧縮ファイルをサーバーに転送します。
サーバー上でzip解凍ができると思いますので解凍して必要なディレクトリに移動します。
これにより、パソコンで作成した日付が同じになるほか、転送時間も大幅に短縮されます。
ただし、圧縮ファイルが大きすぎたり使用しているネット回線が遅い(ADSL等)の場合は、タイムアウトになる場合がありますのでその場合は、タイムアウト時間を延長するか一つずつファイル転送する必要があります。

PCのMSDOS上でFTPを使用することもできますが、FTPコマンドにはPASSIVEモードが付いていませんのでバッチファイル等を使用して転送した場合にエラーとなる場合がありますので注意が必要です。
この場合は、転送後に必ず転送のログを取るようにし正しく転送できたか確認する必要があります。

今日はここまでです。
posted by jun at 00:36| Comment(0) | ファイル転送