Fcron パッケージは定期実行のコマンドスケジューラーです。 Vixie Cron の代替を目的として提供されます。
LFS や依存パッケージが本ブックに示す最新安定バージョンでなかった場合には、BLFS 開発版においては、パッケージのビルドや処理実行が適切に行われないことがあります。
ダウンロード (HTTP): http://fcron.free.fr/archives/fcron-3.2.1.src.tar.gz
ダウンロード MD5 sum: bd4996e941a40327d11efc5e3fd1f839
ダウンロードサイズ: 587 KB
必要ディスク容量: 5.1 MB
概算ビルド時間: 0.1 SBU
MTA, テキストエディター (デフォルトは Vim-9.0.2103 パッケージの vi), Linux-PAM-1.5.3, DocBook-utils-0.6.14
Fcron は syslog の cron
機能を利用して各種メッセージをログ出力します。 LFS ではその設定を /etc/syslog.conf
にて行っていないため、Fcron のインストール前に行う必要があります。 以下のコマンドにより
/etc/syslog.conf
に必要となる設定行を追記します。
(root
ユーザーになって実行します。)
cat >> /etc/syslog.conf << "EOF"
# Begin fcron addition to /etc/syslog.conf
cron.* -/var/log/cron.log
# End fcron addition
EOF
設定ファイルを更新したので sysklogd デーモンをリロードし、その変更を適用します。
(これも root
ユーザーで実行します。)
/etc/rc.d/init.d/sysklogd reload
セキュリティ観点から Fcron
は一般ユーザーおよびグループにより実行されるようにします。 (root
ユーザーになって実行します。)
groupadd -g 22 fcron && useradd -d /dev/null -c "Fcron User" -g fcron -s /bin/false -u 22 fcron
Now fix some locations hard coded in the documentation:
find doc -type f -exec sed -i 's:/usr/local::g' {} \;
以下のコマンドを実行して Fcron をビルドします。
./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --without-sendmail \ --with-boot-install=no \ --with-systemdsystemunitdir=no && make
このパッケージにテストスイートはありません。
root
ユーザーになって以下を実行します。
make install
DESTDIR install must be done as root
user. Furthermore, if PAM configuration
files should be installed in /etc/pam.d
, you have to create this directory in
the DESTDIR before doing the install.
--without-sendmail
:
Fcron はデフォルトの動作として、MTA
パッケージが提供する sendmail
コマンドを実行して、fcron
スクリプトの処理結果をメール送信します。 本スイッチはそのメール通知を無効にします。
デフォルト動作に従う場合は本スイッチを取り除いてください。 あるいは --with-sendmail=
の指定により、所望のメーラーコマンドを指定することもできます。
<MTA
コマンドへのパス>
--with-boot-install=no
:
本パッケージに含まれるブートスクリプトをインストールしないようにします。
--with-systemdsystemunitdir=no
: This
prevents building the systemd
units, which are not needed for a SYS
V system.
--with-editor=
:
このスイッチはデフォルトのテキストエディターを指定します。
<エディターコマンドへのパス>
--with-dsssl-dir=
:
May be used if you have DocBook-utils-0.6.14 installed.
Currently, the dsssl stylesheets are located at </path/to/dsssl-stylesheets>
/usr/share/sgml/docbook/dsssl-stylesheets-1.79
.
設定ファイルに対して変更を要するものはありません。 設定ファイルに関する情報は fcron.conf
に対する man ページを参照してください。
fcron スクリプトは fcrontab を利用しています。 必要な状況を実現するための適切なパラメーターに関しては fcrontab の man ページを参照してください。
Linux-PAM をインストールしている場合、etc/pam.d
ディレクトリに 2 つの PAM 設定ファイルがインストールされます。
etc/pam.d
ディレクトリを利用していない場合は、/etc/pam.conf
ファイルに 2 つの設定内容を追記します。 この 2 つの設定内容が正しいものかを確認してください。
そして必要なら環境に合致するものに修正してください。
If you would like to set up a periodic hierarchy for the root
user, first issue the following commands (as the root
user) to create the /usr/bin/run-parts
script:
cat > /usr/bin/run-parts << "EOF" &&
#!/bin/sh
# run-parts: Runs all the scripts found in a directory.
# from Slackware, by Patrick J. Volkerding with ideas borrowed
# from the Red Hat and Debian versions of this utility.
# keep going when something fails
set +e
if [ $# -lt 1 ]; then
echo "Usage: run-parts <directory>"
exit 1
fi
if [ ! -d $1 ]; then
echo "Not a directory: $1"
echo "Usage: run-parts <directory>"
exit 1
fi
# There are several types of files that we would like to
# ignore automatically, as they are likely to be backups
# of other scripts:
IGNORE_SUFFIXES="~ ^ , .bak .new .rpmsave .rpmorig .rpmnew .swp"
# Main loop:
for SCRIPT in $1/* ; do
# If this is not a regular file, skip it:
if [ ! -f $SCRIPT ]; then
continue
fi
# Determine if this file should be skipped by suffix:
SKIP=false
for SUFFIX in $IGNORE_SUFFIXES ; do
if [ ! "$(basename $SCRIPT $SUFFIX)" = "$(basename $SCRIPT)" ]; then
SKIP=true
break
fi
done
if [ "$SKIP" = "true" ]; then
continue
fi
# If we've made it this far, then run the script if it's executable:
if [ -x $SCRIPT ]; then
$SCRIPT || echo "$SCRIPT failed."
fi
done
exit 0
EOF
chmod -v 755 /usr/bin/run-parts
Next, create the directory layout for the periodic jobs (again as
the root
user):
install -vdm754 /etc/cron.{hourly,daily,weekly,monthly}
Finally, add the run-parts to the system
fcrontab (while still the root
user):
cat > /var/spool/fcron/systab.orig << "EOF"
&bootrun 01 * * * * root run-parts /etc/cron.hourly
&bootrun 02 4 * * * root run-parts /etc/cron.daily
&bootrun 22 4 * * 0 root run-parts /etc/cron.weekly
&bootrun 42 4 1 * * root run-parts /etc/cron.monthly
EOF
blfs-bootscripts-20231119 パッケージが提供する初期化スクリプト
/etc/rc.d/init.d/fcron
をインストールします。
make install-fcron
Finally, again as the root
user,
start fcron and generate the /var/spool/fcron/systab
file:
/etc/rc.d/init.d/fcron start && fcrontab -z -u systab