FCRONTAB(1)

πŸ“¦
version 3.4.1 Β· 2 versions
, in arch rolling, nixpkgs unstable

FCRONTAB(1) πŸ’… fcrontab, the per-user fcrontab bestie

✨ NAME ✨

fcrontab β€” manipulate per-user fcrontab files that adhere to the format defined in fcrontab(5) 🫢


🌸 SYNOPSIS 🌸

fcrontab [ -c file ] [ -n ] file [ user | -u user ]

fcrontab [ -c file ] [ -n ] { -l | -r | -e | -z } [ user | -u user ]

fcrontab [ -h ]

πŸ’… DESCRIPTION πŸ’…

Okay so fcrontab is the program that installs, edits, lists, and removes the tables used by the fcron(8) daemon. Literally the main character of your scheduling setup πŸ’–.

Because fcron internally uses a non-human-readable format β€” needed because fcron saves more info than the user gives it, for example the time and date of next execution β€” you cannot edit their fcrontab directly (the one used by fcron). Ngl, that one is not for touching.

When a user installs a fcrontab, the source file is saved in the spool directory (/usr/local/var/spool/fcron) to allow it to be edited, and a formatted file is generated for the fcron daemon. This formatted (non-human-readable) file with all recent changes included is then sent to the daemon. The daemon is not informed of the changes immediately but after some time, to keep ill-disposed users from blocking the daemon by installing fcrontabs over and over (i.e. denial of service attack). By default, the file is sent once per minute (about ten seconds before the full minute) to the daemon, and the build time parameter --with-max-fcrontab-reload-delay-seconds can be used to specify a different maximum time to send this data. From here on, when I say β€œfcrontab,” I mean the source file of the fcrontab. Periodt.

The fcrontab files that a user modifies have to follow the format defined in fcrontab(5).

Users can install a fcrontab if they are listed in /usr/local/etc/fcron.allow and not listed in /usr/local/etc/fcron.deny (peep the FILES section below). The keyword all is a shorthand for all users. If neither fcron.allow nor fcron.deny exist, all users are allowed. None of these files have to exist, but if they do, the deny file takes precedence πŸ‘‘

The first form of the command is used to install a new fcrontab file, from any named file or from standard input (if the pseudo-filename - is given), replacing the previous one (if any). Each user can have only one fcrontab. One. Only one. No cap.

For instance, root can create a systemwide fcrontab file, say /etc/fcrontab, and run fcrontab /etc/fcrontab to install the new version after each change of the file. Or root can create a new fcrontab running a simple fcrontab, and then maintain it using fcrontab -e. Same considerations apply to a non-privileged user 🫢


πŸŽ€ OPTIONS πŸŽ€

  • -u user β€” Specify the user whose fcrontab will be managed, or systab for the system fcrontab. Should only be used by root. If not given, the fcrontab file of the user invoking fcrontab will be handled. It may be useful since the su(8) command may confuse fcrontab. Quick note: the user in the synopsis is equivalent to a -u user.
  • -l β€” List user’s current fcrontab to standard output. Slay, show me the schedule ✨
  • -e β€” Edit user’s current fcrontab using either the editor specified by the environment variable VISUAL, or EDITOR if VISUAL is not set. If neither of them is set, /usr/bin/vi will be used.
  • -r β€” Remove user’s fcrontab. Bye bestie πŸ’€
  • -z β€” Reinstall user’s fcrontab from its source code. All information fcron may have kept in the binary fcrontab (such as the last execution time and date) will be forgotten (ie. lost).
🚨 Bestie, -z is giving β€œfresh start” but it means the binary fcrontab’s kept info β€” like last execution time and date β€” is literally lost. Not a drill.
  • -n β€” Ignore previous version. If this option is not given, fcron will try to keep as much information as possible between old and new version of the fcrontab (time and date of next execution, if job is in serial queue, etc) if the line hasn’t been modified (same fields, same shell command).
  • -c file β€” Make fcrontab use config file file instead of default config file /usr/local/etc/fcron.conf. To interact with a running fcron process, fcrontab must use the same config file as the process. That way, several fcron processes can run simultaneously on a single system.
  • -d β€” Run in debug mode. In this mode, many informational messages will be output in order to check if anything went wrong.
  • -h β€” Display a brief description of the options.
  • -V β€” Display an informational message about fcrontab, including its version and the license under which it is distributed.

🌈 RETURN VALUES 🌈

fcrontab returns 0 on normal exit and 1 on error. That’s the vibe check: 0 = iconic, 1 = something went wrong 😭


πŸ¦‹ CONFORMING TO πŸ¦‹

Should be POSIX compliant.


πŸ—‚οΈ FILES πŸ—‚οΈ

  • /usr/local/etc/fcron.conf β€” Configuration file for fcron, fcrontab and fcrondyn: contains paths (spool dir, pid file) and default programs to use (editor, shell, etc). See fcron.conf(5) for more details.
  • /usr/local/etc/fcron.allow β€” Users allowed to use fcrontab and fcrondyn (one name per line, special name all acts for everyone).
  • /usr/local/etc/fcron.deny β€” Users who are not allowed to use fcrontab and fcrondyn (same format as allow file).
  • /usr/local/etc/pam.d/fcron (or /usr/local/etc/pam.conf) β€” PAM configuration file for fcron. Take a look at pam(8) for more details.

πŸ”₯ SEE ALSO πŸ”₯

If you’re learning how to use fcron from scratch, I suggest that you read the HTML version of the documentation (if you’re not reading it right now! :)): the content is the same, but it is easier to navigate thanks to the hyperlinks. Iykyk πŸ’–


πŸ‘‘ AUTHOR πŸ‘‘

Thibault Godouet <fcron@free.fr> β€” author, icon, legend 🫢


πŸ’– final vibe check: this was FCRONTAB(1), page dated 06/06/2026 and 06 June 2026 β€” bye bestie, go schedule something iconic! πŸ¦‹βœ¨

πŸ“¦ where this page comes from