以下では、WinSCP 6.5 を用いた「応用・便利機能の活用」について解説します。ファイル転送の効率化や自動化につながる機能が多数用意されているので、ぜひ活用してみてください。
1. ディレクトリの同期・ミラーリング設定
2. 転送プリセット(転送設定の保存と切り替え)
3. 自動化・スクリプト機能(コマンドライン活用)
4. マクロの活用やWindowsタスクスケジューラとの連携
5. まとめ
1. ディレクトリの同期・ミラーリング設定
1.1 ディレクトリの同期とは
- ローカルディレクトリとリモートディレクトリを比較し、差分だけを自動的にコピー・更新する機能です。
- 大量のファイルや、頻繁に更新が発生するプロジェクトで手動アップロード/ダウンロードを行うのは効率が悪いですが、同期機能を使えば作業ミスを減らし、更新漏れを防げます。
1.2 同期の設定方法
- WinSCPを起動してサーバーに接続
- コマンダー形式の場合、左ペインがローカル、右ペインがリモートという構成で見やすいです。
- 「同期(Synchronize)」コマンドを開く
- メインメニューの「コマンド(Commands)」→「同期(Synchronize)」をクリック。
- または、右ペイン(リモート側)のディレクトリ上で右クリックメニューから「ディレクトリの同期」などを選択。
- 同期の方向やオプションを指定
- Mode (同期モード):
- 「Local → Remote」「Remote → Local」「Both」などから選べます。
- 「Both」にすると双方向にファイルの新旧を比較し、更新された方へ反映します。
- Synchronization Criteria:
- 「Modification time」と「Size」を比較対象にするのが一般的。
- Delete files:
- オプションで「片方に存在しないファイルを削除」するかどうか指定できます。
- ミラーリングを完全に行う場合はオンにしますが、誤ってファイルを消さないように注意しましょう。
- Mode (同期モード):
- Preview(プレビュー)を確認
- 「プレビューを表示」オプションをオンにしておくと、同期実行前にどのファイルをアップロード/ダウンロード/削除するか確認できます。
- 実行
- 設定を確認して問題なければ「開始(OK)」を押し、同期を実行します。
ポイント: 一度設定した同期内容は、WinSCP上で記憶されるので、後から同じディレクトリ構成を開いて「同期」を選ぶだけで同じ条件を繰り返し使えます。
2. 転送プリセット(転送設定の保存と切り替え)
2.1 転送プリセットとは
- ファイルの転送モードや自動化ルール、ファイル属性変更などの細かい設定を、ひとつの「プリセット」として保存し、必要に応じて切り替えられる機能です。
- 例えば、テキストファイルを常に「ASCIIモード」でアップロードしたい場合や、WordPressテーマファイルを「自動モード」+「ファイル属性 644」に統一したい場合などに役立ちます。
2.2 プリセットの作成・編集方法
- [オプション(Options)] → [設定(Preferences)] → [転送(Transfer)] を開く
- 日本語UIの場合、メニュー表記が「オプション → 設定 → 転送」などになっていることがあります。
- 「プリセット(Presets)」タブ or 「カスタム設定」 を選ぶ
- ここで「新規(New)」「編集(Edit)」などのボタンを使ってカスタマイズできます。
- パラメータを指定
- 転送モード (Auto/Binary/ASCII)
- ファイルの属性(パーミッション)変更方法
- ファイル名変換や除外ルール(特定の拡張子を除外など)
- タイムスタンプの保持や同期ルール など
- プリセットに名前を付けて保存
- 例:「UTF-8テキスト専用」「PHPスクリプト用」「バイナリファイル用」など、目的が分かる名前を付けると便利です。
2.3 プリセットの切り替え
- ファイルをアップロード/ダウンロードする際に、転送ダイアログが表示されることがあります。
- そのダイアログ上で、プリセット名を選択するだけで、設定を即座に反映できます。
- 大規模プロジェクトでは、ファイルの種類ごとに別プリセットを用意しておくと、手動でのモード変更をしなくても正しい設定で転送できます。
3. 自動化・スクリプト機能(コマンドライン活用)
3.1 WinSCPのスクリプトモード
- WinSCPにはコマンドライン版(winSCP.com) が同梱されており、バッチファイルやPowerShellスクリプトから操作を自動化できます。
- synchronize, put, get, rename, rm など、基本的なファイル操作コマンドが一通り利用可能です。
3.2 簡単なスクリプト例
以下はローカルフォルダ C:\local\project
と、サーバー上 /home/user/project
を同期する例です。
# example_script.txt
open sftp://username:password@example.com/ -hostkey="ssh-rsa 2048 xx:xx:..."
# ↑ 接続先やパスワード等は環境に合わせて変更
# 公開鍵認証を使う場合は sftp://username@example.com/ privatekey=...\ppk など
synchronize remote "C:\local\project" "/home/user/project"
# ↑ ローカル→リモート方向のファイルを同期
exit
- 上記の内容を
example_script.txt
として保存。 - コマンドプロンプトやPowerShellで以下のように実行します。
"C:\Program Files (x86)\WinSCP\WinSCP.com" /script="C:\path\to\example_script.txt"
- これにより自動でWinSCPが起動し、指定のサーバーに接続して、同期を実行して終了します。
3.3 Script記述のポイント
- open コマンドで接続し、put や get、synchronize を使ってファイル操作。
- 最後に exit を忘れずに書いておかないと、セッションが継続する場合があります。
- 画面表示なしで実行されるので、ログ出力(ログファイルの指定)を併用しておくとトラブルシューティングがしやすいです。
注意: スクリプトにパスワードを平文で書くと漏洩リスクがあります。SSH鍵認証に切り替えて、安全にスクリプトを実行することが推奨されます。
4. マクロの活用やWindowsタスクスケジューラとの連携
4.1 マクロ的な操作の実現
- WinSCPはOffice製品のような「マクロ記録機能」はありませんが、スクリプト機能やコマンドラインオプションを組み合わせることで、繰り返し処理を自動化できます。
- たとえば、毎日決まった時間にバックアップをサーバーからダウンロードしたい場合など、スクリプトを作って定期実行するとマクロ的に使えます。
4.2 Windowsタスクスケジューラの設定例
- タスクスケジューラを起動
- Windowsの「スタート」メニューから「タスク スケジューラ」を検索・起動します。
- 基本タスクの作成
- 「基本タスクの作成」をクリックし、名前と説明を入力します(例:
WinSCP Backup Daily
)。
- 「基本タスクの作成」をクリックし、名前と説明を入力します(例:
- トリガーの指定
- 「毎日」「毎週」などのスケジュールや、特定の時間を設定します(例:深夜2時)。
- 操作(アクション)の指定
- 「プログラムの開始」を選択し、プログラム/スクリプト欄に
WinSCP.com
のパスを設定。 - 引数(オプション)として
/script="C:\path\to\backup_script.txt"
を指定する。 - 必要に応じてログを保存する場合は
/log="C:\path\to\winscp.log"
なども付与。
- 「プログラムの開始」を選択し、プログラム/スクリプト欄に
- 完了・テスト実行
- タスク作成後、「タスクの実行」を手動で実行して、問題なくファイル転送が行われるか確認します。
- 正常に動作したら、指定したスケジュールで自動的にバックアップ(またはアップロード)処理が実行されるようになります。
4.3 注意点
- サービスアカウントで動作させる場合
- サーバーOSなどで、ユーザーがログオンしていない状態でもタスクを実行したいなら、必要な権限を持つアカウントでスケジューラを設定する必要があります。
- 鍵ファイルの権限管理
- SSH鍵認証を用いる際には、秘密鍵のパーミッションを適切に設定(読み取り専用にする、第三者がアクセスできないフォルダに置く等)しておきましょう。
5. まとめ
- ディレクトリ同期・ミラーリング
- 差分を自動転送して作業効率UP。プレビュー機能で誤操作を防止できる。
- 転送プリセット
- 転送モードやファイル属性を事前に保存し、プロジェクトごとに簡単切り替え。
- 自動化・スクリプト機能
- コマンドライン(winSCP.com)を使って、ファイル操作をバッチやPowerShellから実行可能。
- 企業システムやプロジェクトの定期ジョブに組み込んで、更新作業やバックアップを効率化。
- マクロ的な利用&スケジュール実行
- Windowsタスクスケジューラなどと組み合わせ、決まった時刻に自動でファイル転送。
- SSH鍵認証を使うことで、パスワード不要かつセキュアな運用が可能。
これらの応用機能を使うことで、WinSCPを単なる「手動のFTPクライアント」から、強力な自動化ツールへと進化させることができます。特に、大量ファイルの運用や、毎日のバックアップ・更新が欠かせないウェブサイトや業務システムにおいて大きな効果を発揮するでしょう。