無料でFTPファイル転送を日時指定で予約実行する方法/バッチ+タスクスケジューラ

公開日:  最終更新日:2021/12/01

無料でFTPでのファイル転送を日時指定して予約実行する方法Windows7「バッチファイル+タスクスケジューラ」
イベントに合わせてページを更新したり、定期的に新着商品のページを更新したりショップ運営していく中でFTPソフトでhtmlファイル、画像ファイルをサーバーに転送する機会は多いですよね。

そんな作業を繰り返していく中で日時予約してファイル転送をしたいことはないでしょうか?

必要なファイルは完成しているけど、イベント開始に合わせてファイルをアップしたいとか、毎日決まった時間にファイルをアップする必要があるけど、忙しくて忘れてしまうことがある・・・など
そこで本日は無料で日時指定をしてファイル転送する方法を紹介したいと思います。

FTPでのファイル転送を指定した日時に実行する方法

利用しているモールやカートの機能としてページ変更、コンテンツ変更の反映を予約する機能などあるかと思いますが、そういった機能がなかったり使えない環境だったりすることはないでしょうか。例えば、作成している独自のhtml、画像ファイルなどイベント開始日時に合わせてファイルを更新したいってことありますよね。

そこで、本日は無料でFTP転送を日時予約して自動的にファイル転送する方法を紹介したいと思います。
※利用しているWebサーバーやパソコン、ネットワーク環境によっては、うまく動作しない可能性もありますのでご了承ください。

Windows標準機能のタスクスケジューラ

Windows OSの標準機能として搭載されており、定期的にパソコンに何かをさせたいときに使える便利な機能なのです。
今回はWindows7ベースで紹介していきます。
まずは、タスクスケジューラを起動する方法ですが、
スタート → コントロールパネル → 管理ツール → タスク スケジューラ
もしくは
スタート→すべてのプログラム→アクセサリ→システムツール→タスク スケジューラ
にあります。まずは、起動してみてください。
起動すると↓のような画面が表示されます。
144-13.png
初めて起動した場合でも、すでにいくつか登録されているタスクが一覧で設定されているのを確認出来ます。知らない間に、どうして設定されているのかと思うかもしれませんが、例えばセキュリティーソフトなどが、ウィルス定義の更新やウィルスチェックを定期的に実行してたりしますよね。それらが実はタスクとして設定されてたりします。

タスクは新規に追加していくことも可能なので、新規にタスクを作成し日時等を指定をすれば、特定日時に何かを実行することが出来ます。

では、次に何かをさせるの部分 今回やりたいのは「FTPでのファイル転送をする」ですが、普段であればFTPソフトを起動して、サーバーに接続してアップしたいファイルを選択して、アップロード先のフォルダに移動して・・・といった一連の操作を行いますよね。その一連の操作をタスク設定の際に指定出来るようにする必要があります。

バッチファイルを作成してみよう「FTP送信自動化」

バッチファイルとは、Windowsで複数の処理をまとめて実行する際に使われるプログラムファイルになります。
144-3.png

ftp -s:ftp.txt
pause

メモ帳などのテキストエディタを使って上記を「ftp.bat」というファイル名で保存します。拡張子を「.bat」にする必要がありますので注意してください。
パソコンの設定によっては、拡張子を表示しない設定になっていることもあります。

拡張子を表示する方法は
ファイルの拡張子を表示するには?を参考にしてみてください。


続けて、もうひとつファイルを作成します。
FTP転送を設定したいWebサーバーの情報を準備しておいてください。
FTPサーバ名(URL)、ユーザーID、パスワードなどです。
144-4.png

open FTPサーバー名(URL)
ログインID
パスワード
asc
prompt
cd event
put D:¥web¥sample.html
bye

上記を「ftp.txt」という名前で保存します。
各行を簡単に説明してみます。
1行目 サーバーに接続していますが、もしポート番号の指定がある場合は
open FTPサーバー ポート番号
サーバー名のあとに半角スペースを入れてポート番号を指定します。
FTPサーバー、ログインID、パスワードは各自の環境に合わせてください。

4行目 転送モードを指定しています。
htmlなどの文字列のファイルであれば asc (アスキーモード)、画像などのファイルであれば、bin (バイナリモード) を指定します。

6行目 cd event の部分が eventフォルダに移動しています。たとえば、「event」フォルダ内にある「summer」フォルダに移動したい場合は
cd event
cd summer
といった感じで続けて2行記述します。この記述を使ってファイルをアップロードしたい場所まで移動します。FTP接続後の直下にアップロードしたい場合は 6行目は不要です。

7行目 が現在いるフォルダに対して ファイルをアップロードしています。
put ファイルの絶対パス という指定になります。
パス内にスペースなどある場合は put “ファイルのパス” ダブルクォーテーションで前後を囲ってやる必要があります。
put D:¥web¥sample.html (実際には¥は半角です)
↑はDドライブのwebフォルダ内にあるsample.htmlをアップロードするという命令です。


作成した2つのファイル「autoftp.bat」と「ftp.txt」を同じフォルダに配置します。
144-2.png
その状態で、autoftp.batをダブルクリックしてバッチファイルを実行してみてください。設定した情報に間違いがなければ、FTPでサーバーに接続して指定したファイルをアップロードするという一連の処理が実行されます。
144-5.png
これで、タスクスケジューラを設定する際に必要になるパソコンに「何かをさせる」をバッチファイルで作成することが出来ました。

作成したバッチファイルをタスクスケジューラで登録する

新しくタスクを作成するには、タスクスケジューラから「タスクの作成」をクリックします。
144-6.png
タスクの名前を付けます。なんでも良いのでわかりやすい名前を付けておきましょう。
144-7.png
トリガーのタブを選択して、「新規」ボタンをクリック
144-8.png
トリガーの編集画面が開きます。
144-9.png
この画面で実行したい日時を指定します。1回のみの日時指定はもちろん、毎日決まった時間など定期的な設定をすることも可能です。
操作のタブに移動します。「新規」ボタンをクリック
144-10.png
操作の編集画面が開きます。
ここで、作成したFTP転送をするバッチファイルを指定します。
例えば、Dドライブのautoフォルダ内に作成したバッチファイルがある場合は下記のような設定を行います。
144-14.png
環境に合わせて設定してみてください。
以上でタスクの設定が完了です。
144-12.png
作成したタスクが一覧に追加されているのを確認出来ると思います。
あとは、指定した日時を待つだけです。

この仕組の弱点・・・

タスクスケジューラとバッチファイルの組み合わせを使うことで、日時指定をしてFTPでファイルをアップロードすることが出来るようになりました。ただ、お気づきの方もいるかと思いますが、この方法はタスクスケジューラを設定したパソコンの電源が入ってないと実行されません・・・・

夜中にファイルをアップしたい場合は、パソコンの電源を入れておく必要があります。

ただ、バッチファイルでFTP送信した後に、パソコンをシャットダウンするという命令を追加することは可能です。
参考までに今回の記述にFTP転送後の シャットダウンの命令を追加すると
ftp -s:ftp.txt
shutdown.exe -s -t 0
となります。

タスクスケジューラーとバッチファイルの組み合わせを使えば定期的にサーバーのファイルをバックアップするなど活用方法が色々あるので、また記事にしようかとは思います。ぜひ、活用してみてください。




Your Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

スポンサードリンク
PAGE TOP ↑