スクリプトをプロジェクトに変換する (SFTPシェルスクリプトの変換例)

スクリプトをプロジェクトに変換する (SFTPシェルスクリプトの変換例)

Goanywhere2022.11.01

スクリプトを使用して反復タスクを自動化することは、一般的な方法です。各オペレーティングシステムは、bash、shell、VBScript、Windows PowerShellなどの独自のスクリプト言語をサポートしています。
しかし、多くのビジネスオペレーションがスクリプトに包括されていくにつれて、これらのプロセス管理は以下のような大きな障害が発生します。

  • スクリプトの作成・管理のために、対応したスキルを持つ技術者が必要
  • 作成・管理者が担当から外れた際に、それらに関する知識の引継ぎが困難
  • エラー処理がしっかりと記述されていないと障害から回復・再開ができない(通常、エラーはオペレーティングシステムの例外ハンドラーに書き込まれ、理解しにくい内容であるため)
  • データベース、電子メールサーバー、FTPサーバーなどの複数リソースに依存する場合、全てプレーンテキストとしてスクリプトに保存されるため、1つのリソース停止に伴いスクリプトを停止する必要がある

これらの問題を解決し、GoAnywhere MFTで安全かつ管理されたファイル転送プロジェクトに変換する方法をご紹介します。

シェルスクリプトとCronジョブの例

次の例では、管理者がSSHキーを作成し、シェルスクリプトを呼び出してSFTPサーバーに接続してファイルをダウンロードし、次にcronジョブを設定してスクリプトを実行しています。cronジョブは毎日午前8時に実行されるようにスケジュールされています。シェルスクリプトには、電子メールアラート、コピーが失敗した場合の自動再開、キーの存在に依存するなどの重要な機能がありません。

手順1. SSHキーを作成します。キーは/home/USERID/.ssh/ディレクトリに保存されます

$ ssh-keygen -t rsa

手順2.キーをリモートサーバーにコピーします。

$ cat id_rsa.pub >> authorized_keys

手順3.シェルスクリプト。

#Directory of files trying to get: /home/USERID/files/target.txt
#Local server: /home/USERID/receive
#Shell script named /home/USERID/sftp-script/get_file:

lcd /home/USERID/receive
cd files
get target.txt
bye

手順4. cronジョブをスケジュールします。cronジョブは、毎日午前8時に実行されるようにスケジュールされています。

$ crontab -e 0 8 * * * sftp -b / home / USERID / sftp-script / get_file localhost

次に、同じプロセスをGoAnywhere MFTのプロジェクトで実行します。

プロジェクトへの変換例

SSHキーの管理

上記のスクリプトと同様に、SSHサーバーに接続する前にGoAnywhere MFTでSSHキーを作成またはアップロードする必要があります。GoAnywhere MFTは、SSL、SSH、およびOpen PGPキーを作成または管理するためのKey Vaultを提供します。デスクトップの場所からキーを取得する代わりに、キーをKey Vaultに追加して、リソース内のキーを参照できます。
SSHキーを作成またはアップロードするには、GoAnywhere MFTにログインします。メインメニューの[暗号化]をクリックし、[キー管理システム(KMS)]をクリックします。ここから、Key Vaultを追加するか、既存のKey Vaultを開くことができます。

SSH Key Vaultでは、新しいキーを作成するか、既存のキーをインポートできます。

Key Vault

再利用可能なリソースの作成

このスクリプトをワークフローに変換する次のステップは、再利用可能なSFTPリソースを作成することです。許可された管理者が接続プロパティを作成すると、資格情報を共有または公開する必要なく、プロジェクトで繰り返し使用できます。
SFTPリソースを作成するには、メインメニューから[リソース]をクリックして、リソースページ左側の一覧から[SSHサーバー (SFTP/SCP/SSH)]リンクをクリックします。画面右側の[SSHサーバーを追加]ボタンをクリックします。
SSHサーバー追加のページで、SFTPサーバーの資格情報と接続設定を入力します。適切なKey Vaultと、前の手順で作成または追加したSSHキーを選択します。リソースを保存する前に、[テスト]ボタンをクリックして、リソースが正しく構成されていることを確認できます。

SSHサーバーリソースの追加

プロジェクトを作成する

リソースが作成されたので、SFTPサーバーに接続して目的のファイルをダウンロードするプロジェクトを作成できます。メインメニューから、[ワークフロー]そして[プロジェクト]を選択します。[プロジェクトを作成]ボタンをクリックします。プロジェクトに名前と説明を付けて、[保存]ボタンをクリックします。
コンポーネントライブラリから、File Transferフォルダを展開し、SFTPタスクをプロジェクトアウトラインまでドラッグします。プロジェクトアウトラインはコンポーネントを配置できる領域を強調表示します。メインモジュールにカーソルを合わせ、メインモジュールが緑色に変わったらSFTPコンポーネントをリリースします。
SFTPタスクがワークパネルに表示されます。[SFTPサーバ]フィールドで、ドロップダウン矢印をクリックし、作成済みのSFTPリソースを選択します。

SFTPタスク

次に、SFTPタスクに実行させるアクションを指定する必要があります。GoAnywhere MFTでは、これは要素をワークフローに追加することで実現されます。SFTPタスクで、[追加] ドロップダウンオプションをクリックし、[ファイルのダウンロード]を選択します。
Get Files(ファイルのダウンロード)要素で、ダウンロードするソースファイルを指定します。提供されたフィールドにファイルパスを入力するか、[…]ボタンをクリックしてSFTPリソースをナビゲートし、ファイルを選択します。
次に、GoAnywhere MFTがファイルを保存する宛先ディレクトリを指定します。

SFTPでファイルのダウンロード

[実行]ボタンをクリックして、プロジェクトを保存およびテストします。プロジェクトの結果がワークパネルに表示され、ジョブログへのリンクが表示されます。

プロジェクト成功

プロジェクトの自動化

プロジェクトの作成とテストが完了したので、スケジュールを作成してプロジェクトを自動化する必要があります。
GoAnywhere MFTには、未来の日時にプロジェクト(ワークフロー)を実行するための組み込みスケジューラが含まれています。プロジェクトは「1回」実行するようにスケジュールすることも、毎分、毎時間、毎日、特定の曜日、毎月など、さまざまな繰り返しの頻度でスケジュールすることもできます。
メインメニューから[ワークフロー]を選択し、[スケジューラー]をクリックします。[スケジュールを追加]ボタンをクリックします。
スケジュールに名前とオプションの説明を入力します。次に、実行するプロジェクトを選択し、このジョブの実行に使用される管理ユーザーのログイン資格情報を追加します。

スケジューラー

[Schedule]タブをクリックし、ジョブを実行する頻度、スケジュールを開始する日時、およびジョブを実行する間隔を選択します。

スケジュール頻度

[Email Notification]タブをクリックします。このタブは、スケジュールされたジョブが正常に完了したとき、またはスケジュールされたジョブが失敗したときに管理者に警告するために使用されます。オプションで、これらのイベントのジョブログをメールで送信できます。
スケジュールを設定したら、[Save]ボタンをクリックします。スケジュールマネージャーに戻り、指定した日時にプロジェクトが自動的に実行されます。

自動化プロジェクトの監査

プロジェクトが実行されるたびに、エントリがジョブログに書き込まれます。すべてのジョブログを表示するには、メインメニューから[Reporting]をクリックし、[監査ログ]をクリックします。画面左側の「完了したジョブ」オプションを選択します。ここから、プロジェクト名、実行日、またはジョブを実行したユーザーでジョブを検索できます。

監査ログ

また、完了したすべてのジョブのレポートを作成することもできます。メインメニューから[Reporting]をクリックし、[レポート]をクリックします。レポートページで、[完了したジョブ]をクリックします。レポートをカスタマイズできるポップアップウィンドウが表示されます。[レポートの実行]ボタンをクリックすると、PDFレポートが作成され、ダウンロードされます。

完了したジョブのレポート

ワークフローの改善

単純なシェルスクリプトがGoAnywhere MFTの管理されたファイル転送プロジェクトに変換されたので、より多くのタスクとコマンドを使用して、以下のような高度でインテリジェントなワークフローを作成できます。

  • 変数とワイルドカードを使用して、TXTやCSVファイルなどの特定のファイルタイプをダウンロード
  • データ変換タスクを追加して、CSVファイルをデータベースまたはXMLに自動的に変換
  • プロジェクトの完了時に管理者に警告するために、より洗練された電子メール、SMS、またはSNMPトラップを追加
  • プロジェクトに変更を加えている間、GoAnywhere MFTは各バージョンを自動的に保存し、以前のリビジョンを復元