FileMakerを使用したWebアプリケーションに限らず、どのようなデータベース・Webアプリケーションでも、運用後の定期的なメンテナンスが必要だ。FileMaker Serverスケジュールのメンテナンス、FileMakerファイルの入れ替え、公開/停止などなど……。リモートでメンテナンスを実施する場合、リモートデスクトップやVNC、Admin Console経由以外にも、コマンドライン(ターミナル)でfmsadminコマンドを覚えておくと便利だ。

fmsadminコマンドとは

FileMaker Serverをインストールすると、fmsadminコマンドがインストールされる。Macの場合はアプリケーション>ユーティリティより、ターミナル.appを起動してfmsadminを実行してみよう。

% fmsadmin
Usage: fmsadmin [options] [COMMAND] 

Description: 
    fmsadmin is the command line tool to administer the Database Server 
    component of FileMaker Server installed on the local machine.

    You can script many tasks with fmsadmin by using a scripting language 
    that allows execution of shell or terminal commands.

    fmsadmin HELP COMMANDS
       Lists available commands

    fmsadmin HELP [COMMAND]
       Displays help on the specified COMMAND

    fmsadmin HELP OPTIONS
       Lists available options

Also see "Command line reference" in FileMaker Server Help:
    http://localhost:16000/admin-help/en

Copyright (c) 2004-2010 FileMaker, Inc.  All rights reserved.

fmsadminを使えばAdmin Consoleを起動しなくとも、FileMakerファイルの公開/停止や、ファイルの入れ替えがおこなえる。ssh経由でリモートのFileMaker Serverにたいしてもメンテナンスが可能になる。

fmsadminでおこなえる処理は次のとおり。

  • autorestart: Admin Serverの自動起動の有無を設定/表示
  • backup: 公開中のFileMakerファイルのバックアップをおこなう
  • close: 公開中のFileMakerファイルを閉じる
  • disable: スケジュールを無効にする
  • disconnect: 接続中のFileMakerクライアントを切断する
  • enable: スケジュールを有効にする
  • help: 各種コマンドのヘルプメッセージを表示する
  • list: 接続中のクライアント/ホストしているFileMakerファイル/プラグイン/スケジュール一覧を表示する
  • open: 指定したFileMakerファイルを公開する
  • pause: 指定したFileMakerファイルを一時停止する
  • remove: 指定したFileMakerファイルをRemovedフォルダに移動する
  • restart: Admin ServerまたはDatabase Serverを再起動する
  • resume: 一時停止中のFileMakerファイルを再開する
  • run: スケジュールを実行する
  • send: 接続中のクライアントにメッセージを送信する
  • start: Admin ServerまたはDatabase Serverを開始する
  • status: 接続中のクライアント/ホストしているFileMakerファイルのステータスを表示する
  • stop: Admin ServerまたはDatabase Serverを停止する
  • verify: 公開中のファイルを閉じ、整合性チェックを実行後、開く

各コマンドのくわしい使い方については、helpで確認できる。

% fmsadmin help <コマンド名>

取りあげたコマンドのうち、一部の使い方を紹介しよう。

autorestart

% fmsadmin autorestart adminserver
% fmsadmin autorestart adminserver on 
% fmsadmin autorestart adminserver off

FileMaker Server 11で追加された機能。Admin Serverの応答がなかったときに自動的に再起動をおこなうか否かの設定をおこなう。デフォルトの設定はON。WindowsではFileMaker Server serviceが、Mac OS Xではfnserver_helperd daemonが動作中のみにこのコマンドを実行できる。

close

% fmsadmin close
% fmsadmin close <ファイル名>
% fmsadmin close <ファイルID>

公開中のFileMakerファイルを閉じる。ファイル名/ファイルIDを指定しなかった場合は、公開しているすべてのFileMakerファイルを閉じる。ファイルIDは後述のlistコマンドで調べることが可能だ。

list

% fmsadmin list clients
% fmsadmin list files
% fmsadmin list plugins
% fmsadmin list schedules

接続中のクライアント/ホストしているFileMakerファイル/プラグイン/スケジュール一覧を表示する。末尾に-sをつけることで、より詳細な情報が表示される。

fmsadmin listコマンドで接続中のクライアント/ホストしているFileMakerファイルの情報を表示

末尾に-sをつけると、より詳細な情報を取得できる

open

% fmsadmin open
% fmsadmin open <ファイル名>
% fmsadmin open <ファイルID>

指定したFileMakerファイルを開く。ファイル名/ファイルIDを指定しなかった場合は、データベースディレクトリ以下に配置されているすべてのFileMakerファイルを開く。closeとセットで覚えておこう。

restart

% fmsadmin restart adminserver
% fmsadmin restart server

FileMaker Server 11で追加された機能。Admin ServerまたはDatabase Serverを再起動する。オプションは次のとおり。

  • -f: 強制的に再起動
  • -m: 接続中のクライアントにメッセージを送信
  • -t: サーバ再起動までの遅延時間を指定

サーバが不安定になっているときや、応答しなくなった場合に使う。stopとセットで覚えておこう。

run

% fmsadmin run schedule <スケジュールID>

Admin Consoleで登録しているスケジュールを実行する。スケジュールIDはlistコマンドで調べることが可能。

status

% fmsadmin status client <クライアントID>
% fmsadmin status file <ファイルID>

接続中のクライアント/ホストしているFileMakerファイルのステータスを表示する。fmsadmin list clients -s、fmsadmin list files -sでは複数の情報を取り扱えるのに比べて、こちらは単一のクライアント/ファイルのみ。

Admin Console上でおこなえる操作と比べると多少機能が限られるものの、簡単なファイルの操作やサービスの再起動、スケジュールの実行ならfmsadminコマンドで充分代用することが可能だ。シェルスクリプトなどにも組み込めるので、タスク/cronを利用したバッチ作業にも活用できる。慣れないうちのCUI操作は大変だが、シンプルな分さまざまな処理に応用ができるのでぜひ覚えておこう。