Movable Typeのデータ更新を抑止する「DataUpdateSuppressorプラグイン」
Movable Typeのデータ更新を抑止する「DataUpdateSuppressorプラグイン」を公開します。
1.機能
プラグインの設定で、下記の機能を抑止します。
- 記事の作成・更新・削除
- ウェブページ作成・更新・削除
- コンテンツデータ作成・更新・削除
- カテゴリ追加・削除
- カテゴリセット作成・追加・削除
- フォルダ追加・削除
- コンテンツタイプ作成・更新・削除
- テンプレート(グローバルテンプレート含む)
- カスタムフィールド(システム含む)
- アイテムアップロード
- アイテムの編集
- ユーザー作成・更新
- グループ作成・更新
- サイト作成
大規模サイトのメンテナンス等でデータ更新を抑止したいケースを想定しています。
抑止した場合、ユーザーがデータ保存を実行したときに、任意のエラーメッセージを表示することが可能です。
2.使い方
更新を抑止したい場合、システム管理画面またはサイト管理画面の「プラグイン」→「DataUpdateSuppressor」→「設定」の「更新抑止」を選択して保存してください。また「MTユーザへのメッセージ」に表示させたいメッセージを設定します。
3.その他
プラグインの詳細は「DataUpdateSuppressorプラグイン」のページをご確認ください、
tailコマンドでファイルがローテートされても追従する方法
tailコマンドでファイルがローテートされても追従する方法を紹介します。
1.問題点
tailコマンドでapacheのファイルを監視しています。
# cd /etc/httpd/logs/
# tail -f access_log
ログがローテートされると監視が途切れてしまいますが、方法が分かりません。
ということで、tailコマンドでファイルがローテートされても追従する方法を紹介します。
2.tailコマンドでファイルがローテートされても追従する
tailコマンドでファイルがローテートされても追従するには"-F"オプションを使用します。
# cd /etc/httpd/logs/
# tail -F access_log
3.サンプル
下記のサンプルで追従することを確認できます。
ターミナルAでファイル「test.txt」に任意の文字を書き込み、ターミナルBでtailを開始します。
ターミナルA
# echo foo > test.txt
ターミナルB
# tail -F test.txt
foo
ファイル名を変更します。tailしているターミナルに「~はアクセス不能になりました」という警告が表示されますが、そのままで問題ありません。
ターミナルA
# mv test.txt test_old.txt
ターミナルB
tail: `test.txt' はアクセス不能になりました: そのようなファイルやディレクトリはありません
再び元のファイル名に書き込むと、tailが再開します。
ターミナルA
# echo bar > test.txt
ターミナルB
# tail -F test.txt
bar
4.その他の方法
tailのバージョンによっては"-F"がサポートされていない場合がありますので、manコマンドでご確認ください。
"-F"がサポートされていない場合は、"--follow=name --retry"でも同様の動作になります。
# tail --follow=name --retry test.txt
"--follow=name"は、指定したファイル名に追従するオプションです。
"--retry"は、指定したファイルに対し何度もファイルオープンを試みるオプションです。
"--follow=name --retry"と"-F"は等価のようです。
なおこちらで動作を確認したところ、"--retry"は指定しなくても大丈夫かもしれません。
# tail --follow=name test.txt
色々ためしてみてください。
Perlで「Subroutine permission redefined at~」を抑止する方法
Perlで「Subroutine permission redefined at~」を抑止する方法を紹介します。
1.問題点
Perlde定義済の関数を上書きすると、
Subroutine permission redefined at~
というワーニングが表示されます。
このワーニングを抑止したいのですが方法がわかりません。
ということで、Perlで「Subroutine permission redefined at~」を抑止する方法を紹介します。
2.「Subroutine permission redefined at~」を抑止する
「Subroutine permission redefined at~」を抑止するには、関数の上書きを行っている個所の前に、下記を追加します。
use warnings;
no warnings 'redefine';
解決しない場合は、上書きされている方の関数の直前に、上の2行を記述してみてください。