run-partsが認識するファイル名ではまった

run-parts - run scripts or programs in a directory

指定ディレクトリ以下のスクリプトを順次実行するコマンド。/etc/crontabで

run-parts /etc/cron.daily

こんな感じで使われている。

特徴

  • 実行はアルファベット順(ASCIIコード順? 数字、英大文字、英小文字の順)
  • サブディレクトリは無視
  • option
    • -aで引数を指定すると、各スクリプトに共通の引数が渡せる
    • -v verbose
  • ファイル名に一部制限あり

ファイル名の制限

debian系とredhat系で動きが違う。これではまった。debianのはELFのバイナリで、redhatシェルスクリプト

debian

ファイル名に使える文字[0-9A-Za-z-_]

  • "."は使えない (hoge.shは無視される)
redhat

末尾が"~"か","以外のファイル。スクリプトの一部抜粋。

# Ignore *~ and *, scripts
for i in $1/*[^~,] ; do