The Fcron package contains a periodical command scheduler which aims at replacing Vixie Cron.
This package is known to build and work properly using an LFS-8.4 platform.
Download (HTTP): http://fcron.free.fr/archives/fcron-3.2.1.src.tar.gz
Download MD5 sum: bd4996e941a40327d11efc5e3fd1f839
Download size: 587 KB
Estimated disk space required: 5.1 MB
Estimated build time: 0.1 SBU
An MTA, text editor (default is vi from the Vim-8.1 package), Linux-PAM-1.3.0, and DocBook-utils-0.6.14
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/fcron
          For security reasons, an unprivileged user and group for
          Fcron should be created (perform
          as the root user):
        
groupadd -g 22 fcron && useradd -d /dev/null -c "Fcron User" -g fcron -s /bin/false -u 22 fcron
Install Fcron by running the following commands:
./configure --prefix=/usr          \
            --sysconfdir=/etc      \
            --localstatedir=/var   \
            --without-sendmail     \
            --with-boot-install=no &&
make
        This package does not come with a test suite.
          Now, as the root user:
        
make install
          DESTDIR install must be done as root user.
        
          --without-sendmail: By
          default, Fcron will attempt to use
          the sendmail command
          from an MTA package to
          email you the results of the fcron script. This switch is used
          to disable default email notification. Omit the switch to enable
          the default. Alternatively, you can use the --with-sendmail=
          to use a different mailer command.
        </path/to/MTA command>
          --with-boot-install=no:
          This prevents installation of the bootscript included with the
          package.
        
          --with-editor=:
          This switch allows you to set the default text editor.
        </path/to/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.
        
            There are no required changes in any of the config files.
            Configuration information can be found in the man page for
            fcron.conf.
          
fcron scripts are written using fcrontab. Refer to the fcrontab man page for proper parameters to address your situation.
            If Linux-PAM is installed, two PAM
            configuration files are installed in /etc/pam.d. Alternatively if /etc/pam.d is not used, the installation will
            append two configuration sections to the existing /etc/pam.conf file. You should ensure the files
            match your preferences. Modify them as required to suit your
            needs.
          
            If you would like to setup 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
Last updated on 2019-02-16 01:24:48 -0800