時間になったらFTPで自動ファイルアップロードする方法

web制作の仕事をしていると、「何日の何時に公開してください」という要望があります。

時間になったらFTPに接続してアップするのでもいいのですが、他の仕事をしているとアップし忘れてしまったりすることがあったり、同時にいくつかの公開作業をしなければならないことがあります。

そういう時というか最近ではほとんど自動で公開するようにプログラムを組むことにしました。

ここでは、Windowsでの時間になったら自動でアップロードする方法について説明していきます。

スポンサーリンク

WinSCPのインストール

まずはWinSCPを下記リンク先からインストールします。

窓の杜
「WinSCP」SCP/SFTP/FTPS対応のFTPクライアント

 

ダウンロードしたexeファイルを起動して、指示通りにインストールしていきます。

 

ftpコマンドだとパッシブモードが有効にならず、たまに動かないことがあるので、WinSCPのFTPコマンドを利用してアップロードすることにしています。

目次に戻る

バッチファイルの作成

Dドライブ/ftpフォルダ内に下記ファイルを作成しました。

 

cmd.batの中身

cmd.bat内には、WinSCPのインストール先とコマンド集を記述したcmd.txtを指定します。

@echo off
"C:\Program Files (x86)\WinSCP\WinSCP.exe" /console /script=D:\ftp\cmd.txt

cmd.txtの中身

cmd.txtには、ftp接続のための情報と、ディレクトリの移動やアップロードコマンドなどを記述していきます。
WinSCPで使えるコマンドは公式に掲載されています。

option confirm off
option transfer automatic
open ftp://ユーザー:パスワード@ホスト -passive=on
cd www
mput D:\ftp\*.*
exit

よく使うコマンド

open 接続情報指定した接続情報にアクセス
cd ディレクトリ名指定したディレクトリに移動
mkdir ディレクトリ名指定したディレクトリを作成
put ファイル名指定したファイル名をアップロード
mput *指定した複数のファイルをアップロード、*は全ファイルを指定
exitftp終了

目次に戻る

タスクスケジューラの設定

左下にある検索窓で「タスクスケジューラ」と検索します。

 

「操作」-「タスク作成」をクリックします。

 

全般タブ
「名前」欄は任意のものを入力し、「ユーザーがログオンしているかどうかにかかわらず実行する」と「最上位の特権で実行する」にチェックを入れます。

 

トリガータブ
新規をクリックします。

 

起動したい時間を入力します。

 

操作タブ
新規をクリックします。

 

参照から「D:\ftp\cmd.bat」を指定します。

 

OKをクリックすると管理者のパスワードを聞かれますので、各々設定しているパスワードを入力したら終了です。

 

タスクに追加されました。

 

これで時間になったら公開されるようになりました。

目次に戻る

新入社員の頃にシステムエンジニアの会社に入社。その後、WEB制作系の仕事に転職しました。

くるりんをフォローする
プログラミング
スポンサーリンク
くるりんをフォローする
Memorandums