--- /dev/null
+<!--
+Fcron documentation
+Copyright 2000-2006 Thibault Godouet <fcron@free.fr>
+Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License,
+Version 1.1 or any later version published by the Free Software
+Foundation.
+A copy of the license is included in gfdl.sgml.
+-->
+
+<!-- $Id: changes.sgml,v 1.1 2006-02-05 19:26:16 thib Exp $ -->
+
+ <sect1 id="changes">
+ <title>Changes</title>
+
+ <itemizedlist>
+ <title>From version 3.0.0 to 3.0.1</title>
+ <listitem>
+ <para>Better handling of the pipes in job.c: this should remove some problems encountered on BSD systems.</para>
+ </listitem>
+ <listitem>
+ <para>Bug fix: set the FDs correctly for select(). Should fix the problem encountered on BSD systems.</para>
+ </listitem>
+ <listitem>
+ <para>fcrontab: access user's directory with user's rights (necessary if user/group fcron has not the right to read the directory).</para>
+ </listitem>
+ <listitem>
+ <para>improvement in check_system_crontabs: more comments, added some help messages, added command line options, cleaner, safer code.</para>
+ </listitem>
+ <listitem>
+ <para>Improved English documentation: clarified some previously-unclear points.</para>
+ </listitem>
+ <listitem>
+ <para>Added French translation of the manual pages (thanks go to Alain Portal)</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 2.9.7 to 3.0.0</title>
+ <listitem>
+ <para>Added a missing entry in changelog (changes from 2.9.6 to 2.9.7, bug fix for NetBSD).</para>
+ </listitem>
+ <listitem>
+ <para>Merged a patch for the check_system_crontabs script (Security enhancements and cleanups).</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 2.9.6 to 2.9.7</title>
+ <listitem>
+ <para>Added time zone support (option timezone).</para>
+ </listitem>
+ <listitem>
+ <para>Better support FreeBSD's users and groups modifications in
+ fcron's install scripts.</para>
+ </listitem>
+ <listitem>
+ <para>Fixed a bug which used to make fcron send empty mails on very
+ recent systems.</para>
+ </listitem>
+ <listitem>
+ <para>Fixed a bug which prevented fcrondyn to being used on NetBSD (thanks go to Gabor Z. Papp).</para>
+ </listitem>
+ <listitem>
+ <para>Added some casts in fileconf.c and save.c (to avoid some
+ warnings when compiling on HP-UX).</para>
+ </listitem>
+ <listitem>
+ <para>Added a FAQ entry on how to emulate an anacron entry.</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 2.9.5.1 to 2.9.6</title>
+ <listitem>
+ <para>fixed the bug which made jobs run an hour too early after a
+ daylight saving time change.</para>
+ <para>Added detailed explanations about when a job will run when
+ there is a DST change in the FAQ.</para>
+ </listitem>
+ <listitem>
+ <para>fixed fcrondyn's "Unknown command" bug on x86_64 (thanks go to
+ Georgi Georgiev).</para>
+ </listitem>
+ <listitem>
+ <para>made fcrontab behave better when there is no space left in the
+ spool directory (used to truncate the fcrontab source file).
+ </para>
+ <listitem>
+ <para>Added a script, check_system_crontabs, to emulate Vixie cron's
+ behavior about /etc/crontab and /etc/cron.d. Please have a look
+ at the top of script/check_system_crontabs for more information.
+ </para>
+ </listitem>
+ <listitem>
+ <para>HP-UX support (needs more tests).</para>
+ </listitem>
+ <listitem>
+ <para>bug fix: restore umask even if fcron runs
+ unprivileged.</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 2.9.5 to 2.9.5.1</title>
+ <listitem>
+ <para>Fixed serious security vulnerabilities in fcronsighup, and
+ improved fcronsighup's overall security (drop privileges, better
+ check user inputs, etc).</para>
+ </listitem>
+ <listitem>
+ <para>Fixed several typos in the doc.</para>
+ </listitem>
+ <listitem>
+ <para>Updated debian package scripts (patch from debian
+ maintainer).</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 2.9.4 to 2.9.5</title>
+ <listitem>
+ <para>Ported to HP-UX (thanks go to Scott Tinsley)</para>
+ </listitem>
+ <listitem>
+ <para>Implemented fcrondyn commands run and runnow.</para>
+ </listitem>
+ <listitem>
+ <para>Merged patch from Russell Coker for new SE Linux.</para>
+ </listitem>
+ <listitem>
+ <para>Merged debian/ dir for debian package.</para>
+ </listitem>
+ <listitem>
+ <para>Mail reports: put the same username in the To: field than the
+ one we give as recipient to the MTA. mailto can now also be a
+ fully qualified email address.</para>
+ </listitem>
+ <listitem>
+ <para>changed a log message: a job which has ended without error is
+ reported has "completed" (which is more appropriated than
+ "terminated").
+ </para>
+ </listitem>
+ <listitem>
+ <para>Internal changes in log.c: code is more segmented, and code
+ has been added to be able to send log message to fcrondyn. Syslog
+ messages are now never longer than MAX_MSG (even with string from
+ strerror()).</para>
+ </listitem>
+ <listitem>
+ <para>Fixed a bug which happened on Daylight Saving Time change on
+ some systems. It would make fcron run into a nasty infinite loop.
+ Added a sanity check in set_nextexe() to avoid such
+ things.</para>
+ </listitem>
+ <listitem>
+ <para>Fixed a crash bug: in 2.9.4, if a user run ls_exeq when a job
+ is running and has been removed from its fcrontab, it makes fcron
+ crash.</para>
+ </listitem>
+ <listitem>
+ <para>Fixed a small bug: scripts were supposing perl was in
+ /usr/bin.</para>
+ </listitem>
+ <listitem>
+ <para>Fixed a bug which caused the pid of a child process to be
+ incorrectly read</para>
+ </listitem>
+ <listitem>
+ <para>fixed memory leak: some strings returned by log.c:make_msg()
+ weren't always free()d.</para>
+ </listitem>
+ <listitem>
+ <para>bug fix: fcrondyn commands renice and kill used not to handle
+ correctly the case where a job has several entries in exeq
+ (exesev jobs).</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 2.9.3 to 2.9.4</title>
+ <listitem>
+ <para>Merged support for SE Linux (patch from Russell Coker: thanks!)
+ </para>
+ </listitem>
+ <listitem>
+ <para>Work on the documentation (fixed spelling mistakes, tried to
+ make things clearer in fcrontab.5) (thanks Bill Wohler for your
+ help!)</para>
+ </listitem>
+ <listitem>
+ <para>Changed the subject line of mail reports: it now contains the
+ subject line, and is very similar to vixie cron's one.</para>
+ </listitem>
+ <listitem>
+ <para>Added a sum-up at the end of ./configure.</para>
+ </listitem>
+ <listitem>
+ <para>bug fix: "makewhatis" bug is fixed -- at last!</para>
+ <para>In fact, the problems encountered were due to an abusively
+ ignored signal SIGPIPE.</para>
+ </listitem>
+ <listitem>
+ <para>bug fix: possible crash of fcron when trying to save a file
+ if there was no space left on device.</para>
+ </listitem>
+ <listitem>
+ <para>bug fix: we don't consider '-' and '_' as word delimiters for
+ a username before the command anymore, since many programs have
+ one of these characters in their name.</para>
+ </listitem>
+ <listitem>
+ <para>bug fix: option first was broken in fcron 2.9.3.</para>
+ </listitem>
+ <listitem>
+ <para>fixed a little typo in an error message
+ (could->couldn't)</para>
+ </listitem>
+ <listitem>
+ <para>bug fix: do not ignore the last line of a fcrontab if there
+ is no \n before the end of file.</para>
+ </listitem>
+ <listitem>
+ <para>fixed compile on SunOS 5.9 .</para>
+ </listitem>
+ <listitem>
+ <para>Fcron now compiles on MacOS X.</para>
+ </listitem>
+ <listitem>
+ <para>added some $srcdir to be able (again ;) ) to run configure
+ from another directory.</para>
+ </listitem>
+ <listitem>
+ <para>Perf improvement: use buffer for i/o in run_job().</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 2.9.2 to 2.9.3</title>
+ <listitem>
+ <para>security issue: fcron used not to check the fcrontabs
+ installed by root for a standard user. This could make an
+ inattentive superuser install a user job runas(root)
+ involontary.</para>
+ </listitem>
+ <listitem>
+ <para>Perf improvement: we now use buffers to write something to
+ disk (became necessary due to the use of O_SYNC).</para>
+ </listitem>
+ <listitem>
+ <para>To avoid loss of data in case of an hardware failure or a
+ system crash, fcron now saves files to a temporary name, and then
+ renames them to their definitive filename if everything's
+ ok.</para>
+ </listitem>
+ <listitem>
+ <para>The PID indicated by fcrondyn is now the pid of the job itself
+ (up to now, it was the one of the fcron process controlling the
+ job).</para>
+ </listitem>
+ <listitem>
+ <para>Implemented functions kill (send a signal to a running job)
+ and renice (change the priority of a running job) in
+ fcrondyn.</para>
+ </listitem>
+ <listitem>
+ <para>Added fcron's option -q to control the lavg and serial queue
+ sizes.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Added some timeouts in fcron for fcrondyn clients.</para>
+ </listitem>
+ <listitem>
+ <para>Fcron is less restrictive concerning mailto addresses. In
+ particular, you can now use address like user@host.</para>
+ </listitem>
+ <listitem>
+ <para>bug fix: in 2.9.2, fcrontab and fcron did not set correctly
+ some file modes.</para>
+ </listitem>
+ <listitem>
+ <para>bug (introduced in 2.9.1): when a job stops with an non-zero
+ exit status or because it has been signaled, send a mail to its
+ owner to inform him (in 2.9.1 and 2.9.2, the mail was sent, but
+ contained nothing).</para>
+ </listitem>
+ <listitem>
+ <para>code clean: use the same scheme for all struct types, removed
+ some code redundancy (save to disk management).</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 2.9.1 to 2.9.2</title>
+ <listitem>
+ <para>Added a system fcrontab. Root can access it with fcrontab by
+ using "-u systab".</para>
+ </listitem>
+ <listitem>
+ <para>fcrondyn's ls_lavgq, ls_serialq and ls_exeq are now
+ functional.</para>
+ </listitem>
+ <listitem>
+ <para>mailto can now be set to a non-real user (for ex., an
+ alias).</para>
+ </listitem>
+ <listitem>
+ <para>fcron now calls shutdown() when a connection from fcrondyn is
+ closed. Another change in the code should prevent fcrondyn from
+ not returning to the prompt after a command has been run.</para>
+ </listitem>
+ <listitem>
+ <para>use open() instead of fopen() to write files, for more
+ security.</para>
+ </listitem>
+ <listitem>
+ <para>fcrontab sets euid=uid before running the editor. This is
+ required by some programs (for instance, perl).</para>
+ </listitem>
+ <listitem>
+ <para>bug fix: using DESTDIR with make did not work with the
+ doc.</para>
+ </listitem>
+ <listitem>
+ <para>Code clean: changed macros to make parameters clearly
+ different from vars.</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 2.9.0 to 2.9.1</title>
+ <listitem>
+ <para>fcron can now be run without root's privileges (<link
+ linkend="faq">see FAQ</link>)</para>
+ </listitem>
+ <listitem>
+ <para>added configure's option --with-boot-install .</para>
+ </listitem>
+ <listitem>
+ <para>Minor change in the PAM code of fcron: may work better on
+ some systems.</para>
+ </listitem>
+ <listitem>
+ <para>configure script now uses getpwnam() and getgrnam() instead of
+ reading directly /etc/passwd and /etc/group: this makes easier
+ the use of NIS, LDAP, etc.</para>
+ </listitem>
+ <listitem>
+ <para>Bug fix: using some "cmd > /dev/stderr" (or stdout) in a
+ script used to make fcron send a bogus output mail. (rewrite of
+ the code managing the output of jobs)</para>
+ </listitem>
+ <listitem>
+ <para>Bug fix: typo error prevented fcrontab to be compiled on some
+ systems.</para>
+ </listitem>
+ <listitem>
+ <para>Minor bug fix about stdout option.</para>
+ </listitem>
+ <listitem>
+ <para>Minor bug fix: giving fcrontab's option -c a relative path
+ now works correctly.</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 2.1.0 to 2.9.0</title>
+ <listitem>
+ <para>Added some new options to fcron: -y, -o, -l; and some
+ fcrontab options: stdout and volatile. All these permit to make
+ fcron run in foreground, execute all the pending jobs (mainly
+ %-jobs), and return. May be used, for instance, in a ppp-up
+ script with a dialup connection to update a software
+ regularly.</para>
+ </listitem>
+ <listitem>
+ <para>Added fcrondyn: this software allows users to dialog
+ dyn-amically with a running fcron daemon. Currently, it can list
+ jobs of the user running it (or all jobs for root). In the near
+ future, it should be able to run a job, change its next time and
+ date of execution, renice a running job, send a signal to a
+ running job, etc.</para>
+ </listitem>
+ <listitem>
+ <para>All the documentation has been ported to SGML DocBook.</para>
+ <para>It results on a much better HTML version, which I recommand
+ you use. It is installed by default in fcron documentation
+ directory (for instance, on my system:
+ <filename>/usr/share/doc/fcron-X.X.X/</filename>).</para>
+ </listitem>
+ <listitem>
+ <para>Fcrontab.5 has been updated and improved. Some examples have
+ been added and some possible use of the different lines and
+ options are mentioned.</para>
+ </listitem>
+ <listitem>
+ <para>Added option random, which allows an entry run periodically to
+ be run at a random time in its intervals of execution, instead of
+ being run as soon as possible.</para>
+ </listitem>
+ <listitem>
+ <para>added some more checks in fileconf.c: allow user to use
+ hours, days, hourly, daily, etc options only with %-lines: it is
+ ignored if set for a &-line, which is quite confusing for users
+ who may type, for instance "&hourly" instead of
+ "%hourly".</para>
+ </listitem>
+ <listitem>
+ <para>bug fixed: you can now use arguments in the var EDITOR and
+ VISUAL.</para>
+ </listitem>
+ <listitem>
+ <para>bug fixed: fcron used to call sometimes a sleep(-1), which
+ causes a freeze (no crash, but a very very long sleep :) ) under
+ system using LIBC5, and maybe on some non-linux systems. It was
+ not causing any problem under GLIBC2. Thanks go to Nick
+ Pasich.</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 2.0.0 to 2.1.0</title>
+ <listitem>
+ <para>PAM support for fcron and fcrontab (need testing! - help
+ would be appreciated).</para>
+ </listitem>
+ <listitem>
+ <para>Fcron now send a mail if a job has noticenotrun set and could
+ not be run because of a queue full.</para>
+ </listitem>
+ <listitem>
+ <para>Fcron now compiles on AIX (thank you, John A. Parker!), and a
+ few AIX-only bugs have been fixed, but it may remain some
+ problems to correct. Please try, and tell me!</para>
+ </listitem>
+ <listitem>
+ <para>We now use constants ROOTUID and ROOTGID instead of some
+ hard-coded "0", and those constants are defined by the configure
+ script (we use the uid/gid of the name given with the option
+ "--with-root{name|group}"). It allows fcron to be run on system
+ on which root is not uid/gid 0/0.</para>
+ </listitem>
+ <listitem>
+ <para>code cleaning.</para>
+ </listitem>
+ <listitem>
+ <para>bug fixed: setting lavg to (0,0,0) used to make the line be
+ added in the lavg queue instead of the serial queue (but the
+ lavgs were ignored anyway).</para>
+ </listitem>
+ <listitem>
+ <para>bug fixed: fcrontab's "-z" option was not ignoring previous
+ user's fcrontab version.</para> </listitem>
+ <listitem>
+ <para>bug fixed: on systems using putenv(), the var HOME, USER and
+ SHELL wasn't correctly assigned. On system supporting setenv()
+ (which is the default), the problem did not occur. (thanks go to
+ Evan A. Zacks).</para>
+ </listitem>
+ </itemizedlist>
+
+
+ <itemizedlist>
+ <title>From version 1.1.1 to 2.0.0</title>
+ <listitem>
+ <para>using SIGUSR2 on fcron makes it print its current schedule on
+ syslog and toggles on/off the printing of debug info on
+ syslog.</para>
+ </listitem>
+ <listitem>
+ <para>fcron behavior on serial and lavg queues overflow has changed:
+ in previous versions, it used to run a job to make room to put
+ a new one. As it may conduct to a overwhelming of system
+ resources, the new job is now refused (and not run). An error
+ message is also logged through syslog.</para>
+ </listitem>
+ <listitem>
+ <para>a mail is now sent if the job exited due to a signal, or if
+ exit status is non-zero. Read FAQ if you experience problems
+ about that.</para>
+ </listitem>
+ <listitem>
+ <para>added a FAQ.</para>
+ </listitem>
+ <listitem>
+ <para>bug fixed: a midmonthly job executed after the 15th of the
+ month used to cause an endless loop. Thanks go to Guy Geens
+ (thanks a lot!).</para>
+ </listitem>
+ <listitem>
+ <para>bug fixed: inserting a job in serial queue or running a job
+ not finished at startup was broken, unless the job was
+ strict(no).</para>
+ </listitem>
+ <listitem>
+ <para>bug fixed: some 1.1.1 changes used to make fcron impossible
+ to compile without sendmail (./configure's option
+ "--with-sendmail=no").</para>
+ </listitem>
+ <listitem>
+ <para>bug fixed in sysV boot script: we know specify explicitly the
+ path to fcron.</para>
+ </listitem>
+ <listitem>
+ <para>bug fixed: unresolved error used to occur on some system not
+ defining getopt_long().</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 1.1.0 to 1.1.1</title>
+ <listitem>
+ <para>security fix: sym link attack against fcrontab. Any user
+ allowed to use fcrontab used to be able to remove any fcrontab,
+ and potentially to truncate any file to zero-length (under
+ certain conditions, anyway).</para>
+ </listitem>
+ <listitem>
+ <para>fcron and fcrontab now have a configuration file: fcron.conf.
+ It contains the default paths (spool dir, etc) and programs to
+ use (editor, shell, etc). Thanks to that file, several fcron
+ processes can run simultaneously if they have a different config
+ (different spool dir and pid file).</para>
+ </listitem>
+ <listitem>
+ <para>added fcron's option "-m" to control the number of serial jobs
+ which can be executed simultaneously.</para>
+ </listitem>
+ <listitem>
+ <para>added fcron's option "-n" to create a new spool dir.</para>
+ </listitem>
+ <listitem>
+ <para>command line syntax of fcrontab has changed: you can know use
+ "user" (after the file name if any) instead of "-u user". It
+ should make fcrontab a little more intuitive.</para>
+ </listitem>
+ <listitem>
+ <para>It is now possible to put a user name between the time/date
+ fields and the shell command of a fcrontab line (for Vixie cron
+ format compatibility): it is equivalent to runas(user).</para>
+ </listitem>
+ <listitem>
+ <para>support of Solaris (and SysV).</para>
+ </listitem>
+ <listitem>
+ <para>early support of OpenBSD.</para>
+ </listitem>
+ <listitem>
+ <para>the installation scripts now use nsswitch.conf to detect if a
+ user or a group exists on the system. That way, naming services
+ (NYS, ldap, etc) are supported.</para>
+ </listitem>
+ <listitem>
+ <para>the man page and doc is now installed by default in
+ $prefix/share/{man|doc} (instead of the previous
+ $prefix/{man|doc}) ($prefix is generally "/usr").</para>
+ </listitem>
+ <listitem>
+ <para>bug corrected: fcron used not to add a serial_sev line to
+ serial/lavg queue if this line was running, saying "already in
+ serial queue".</para>
+ </listitem>
+
+ <listitem>
+ <para>bug corrected: a "all" in fcron.allow with no fcron.deny file
+ was not considered as an allow rule.</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 1.0.3 to 1.1.0</title>
+ <listitem>
+ <para>The binary format of the binary fcrontabs has changed: there
+ is now no more need to reinstall the fcrontabs when upgrading
+ fcron (but you need to convert your fcrontabs to the new format
+ once), and this format should allow extensions without losing any
+ information.</para>
+ </listitem>
+ <listitem>
+ <para>better management of the errors in load/save fcrontabs
+ functions.</para>
+ </listitem>
+ <listitem>
+ <para>the doc is a clearer about @-lines.</para>
+ </listitem>
+ <listitem>
+ <para>more security tests by fcrontab in the case it is suid root
+ (but, if possible, it should be suid fcron as it is far more
+ secure).</para>
+ </listitem>
+ <listitem>
+ <para>we now remove unwanted fcrontabs before loading them in memory:
+ well, it seems to be more logical like that :)) .</para>
+ </listitem>
+ <listitem>
+ <para>bug fix: using options first with a &-line may have led to
+ some problems during the first read by fcron (mail send
+ erroneously if noticenotrun was used, bad set of the first
+ execution's time and date or immediate execution if bootrun was
+ set: in fact, the line was not recognized as a new line).</para>
+ </listitem>
+ <listitem>
+ <para>bug fix: fcron used not to be able to be compiled from any
+ directory because of an absent -I. line option for the compiler
+ (the config.h file was not found).</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 1.0.2 to 1.0.3</title>
+ <listitem>
+ <para>fcron can now be configured and compiled from any directory
+ (not only from the source dir).</para>
+ </listitem>
+ <listitem>
+ <para>bug fix: fcron now sets umask to the value it got at start
+ before running a job.</para>
+ </listitem>
+ <listitem>
+ <para>bug corrected: a bug used to make the "truncated" system not
+ to work correctly, so a too long log message used to make fcron
+ crash.</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 1.0.1 to 1.0.2</title>
+ <listitem>
+ <para>the user for whom a job is run is now logged.</para>
+ </listitem>
+ <listitem>
+ <para>installation script is now more explicit about what it is
+ going to do.</para>
+ </listitem>
+ <listitem>
+ <para>a boolean value can now also be set by "yes" and "no".</para>
+ </listitem>
+ <listitem>
+ <para>bug corrected: bootrun option works again.</para>
+ </listitem>
+ <listitem>
+ <para>bug corrected: shell variable containing underscore (_) used
+ to be rejected.</para>
+ </listitem>
+ <listitem>
+ <para>bug corrected: installation script used not to check if user
+ fcron was in group fcron, in which case fcrontab doesn't work
+ correctly (it cannot, in that case, read the fcrontabs for
+ non-privileged users).</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 1.0.0 to 1.0.1</title>
+ <listitem>
+ <para>security fix: a user used to be able to read a file owned by
+ root if root runs a "fcrontab -u user -e".</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 0.9.5 to 1.0.0</title>
+ <listitem>
+ <para>added fcron's option "-s" to control the time between two
+ saves of the fcrontabs on disk.</para>
+ </listitem>
+ <listitem>
+ <para>installation scripts now support better FreeBSD and sh.</para>
+ </listitem>
+ <listitem>
+ <para>bug corrected: configure's options prefix and
+ without-sendmail used not to work.</para>
+ </listitem>
+ <listitem>
+ <para>bug corrected: installing an fcrontab by "fcrontab file"
+ wasn't working correctly with a relative path (a path not
+ beginning by a "/").</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 0.9.4 to 0.9.5</title>
+ <listitem>
+ <para>security fix: the jobs of a fcrontab reinstalled by root used
+ to be run as root (until the next action of the owner on the
+ fcrontab).</para>
+ </listitem>
+ <listitem>
+ <para>added options strict and noticenotrun to tell fcron
+ respectively if a job should be removed from lavg queue if its
+ execution interval is exceeded, and if fcron should mail user to
+ report the non-execution of a job.</para>
+ </listitem>
+ <listitem>
+ <para>added option nolog in order to log only errors (i.e. no
+ message like "job x started"). This can help to reduce the disk
+ access and save energy on a laptop, and make the log more
+ readable if some jobs are run very often.</para>
+ </listitem>
+ <listitem>
+ <para>better handle of changes of the uids of users in /etc/passwd
+ (no more need to reinstall the fcrontabs).</para>
+ </listitem>
+ <listitem>
+ <para>fcron.deny and fcron.allow files are now owned by root (they
+ used to be owned by user fcron).</para>
+ </listitem>
+ <listitem>
+ <para>added ./configure's option --with-answer-all to be able to use
+ "make install" in a non-interactive way (can be useful for
+ automatic installers).</para>
+ </listitem>
+ <listitem>
+ <para>added option --with-rootname and --with-rootgroup to
+ ./configure script for a better support of exotic systems.</para>
+ </listitem>
+ <listitem>
+ <para>bug corrected in make install (script user-group): the script
+ used not to handle correctly the absence of both useradd and
+ adduser commands. This script now checks and tries to add a
+ group fcron if necessary.</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 0.9.3 to 0.9.4</title>
+ <listitem>
+ <para>security improvement: after the (horrible) root exploit found
+ in version 0.9.3, I decided to improve fcron/fcrontab's security.
+ I've included some strong (I hope :)) ) tests in fcron to ensure
+ that only root can run commands as superuser and use option
+ runas. Even an corrupted fcrontab should not be able to get
+ root's privileges. Pretty reassuring, isn't it?</para>
+ </listitem>
+ <listitem>
+ <para>runfreq(1) lines have been replaced and extended by a new kind
+ of line: the lines beginning by a "%". It's now possible to tell
+ fcron to run a command once an hour, a week, etc, but only at
+ some specified moments. For instance: '%weekly * 4-7 echo "foo"'
+ will run the command 'echo "foo"' once a week between 4 and 7 in
+ the morning. (see "man 5 fcrontab" for more details).</para>
+ </listitem>
+ <listitem>
+ <para>installation process improved: user is now consulted before
+ anything is done about installation in boot scripts, etc. The
+ default username of fcron is now ... fcron! (this is more secure
+ than daemon, which can be used by other programs). </para>
+ </listitem>
+ <listitem>
+ <para>fcron now adds the host name to the addresses of the mails it
+ sends.</para>
+ </listitem>
+ <listitem>
+ <para>fcrontab determines the identity of the running user by his
+ uid (it used to use the var USER). That way, fcrontab should act
+ as crontab under a "su".</para>
+ </listitem>
+ <listitem>
+ <para>bug fixed: a tmp file was not removed after a "fcron
+ -z"</para>
+ </listitem>
+ <listitem>
+ <para>bug fixed in fcrontab: an expression of the form "start-stop"
+ with start > stop used to be incorrectly managed by fcron.</para>
+ </listitem>
+ <listitem>
+ <para>bug fixed: when fcron and fcrontab were installed under a
+ non-privileged user rights, a normal user used to be not able to
+ use fcrontab.</para>
+ </listitem>
+ <listitem>
+ <para>bug fixed: while fcrontab was asking user if he would like to
+ correct an erroneous line, the answer was not correctly
+ handled.</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 0.9.2.1 to 0.9.3</title>
+ <listitem>
+ <para>installation scripts improved.</para>
+ </listitem>
+ <listitem>
+ <para>added code to avoid infinite loops.</para>
+ </listitem>
+ <listitem>
+ <para>bugs corrected in the functions to set the time and date of
+ next execution.</para>
+ </listitem>
+ <listitem>
+ <para>bug corrected in the check for invalid lines.</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 0.9.2 to 0.9.2.1</title>
+ <listitem>
+ <para>minor bug corrected in Makefile</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 0.9.1 to 0.9.2</title>
+ <listitem>
+ <para>fcron now uses autoconf (the configure script), so it should
+ be easier to compile and install it and various systems.</para>
+ </listitem>
+ <listitem>
+ <para>support of lavg options for all systems where getloadavg() is
+ defined (BSD unix, etc) and on Linux systems with a proc
+ filesystem (fcron can use /proc/loadavg).</para>
+ </listitem>
+ <listitem>
+ <para>a job can now be executed several times simultaneously if
+ option exesev is set to 1.</para>
+ </listitem>
+ <listitem>
+ <para>user can determine if a job can be put several times in the
+ serial queue simultaneously thanks to option serialonce.</para>
+ </listitem>
+ <listitem>
+ <para>fcron does not wait anymore for the completion of all jobs of
+ a file before deleting it from memory.</para>
+ </listitem>
+ <listitem>
+ <para>fcron handles correctly the jobs which are both serial and
+ lavg.</para>
+ </listitem>
+ <listitem>
+ <para>fcron now runs under a specific user and group (other than
+ root) for basic security reasons.</para>
+ </listitem>
+ <listitem>
+ <para>bug corrected: fcron used to crash after a file was deleted
+ from memory in some conditions.</para>
+ </listitem>
+ <listitem>
+ <para>corrected the bug which used to appear when a line was put
+ several times in the serial queue: in this case, fcron used not
+ to count correctly the number of running serial jobs.</para>
+ </listitem>
+ <listitem>
+ <para>bug corrected: fcrontab used not to remove the temporary file
+ it creates if no modification where done to a file after an
+ edition using the -e option and on errors.</para>
+ </listitem>
+ <listitem>
+ <para>bug corrected: fcrontab now defines correctly the remain
+ value of a line based on time and date beginning with a "&" but
+ without runfreq definition.</para>
+ </listitem>
+ <listitem>
+ <para>bug corrected: fcron used to not install correctly a file
+ edited if a correction was made.</para>
+ </listitem>
+ <listitem>
+ <para>bug corrected: reset option was not working correctly when
+ set to a single line.</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 0.9.0 to 0.9.1</title>
+ <listitem>
+ <para>support of the option mailto for each line (it used to be set
+ for the whole file).</para>
+ </listitem>
+ <listitem>
+ <para>the value of the runas and mailto options are now stored
+ internally as a uid number: you must reinstall all the system's
+ fcrontabs if you change the uid of a user.</para>
+ </listitem>
+ <listitem>
+ <para>Support of options "lavg*", in order to run a job under a
+ specific 1, 5 and/or 15 minutes system load average value(s).
+ When the job should be run, it is placed in a specific queue and
+ the load average is checked regularly until the right value(s)
+ is/are got. The options "lavgor" and "lavgand" permits users to
+ tell fcron if they prefer to perform a logic OR or AND between
+ the 1, 5 and 15 load average values. The option "until" can be
+ use to force the execution of a job after a determined timeout if
+ the right conditions to run the job are not filled.</para>
+ </listitem>
+ <listitem>
+ <para>fcron now uses putenv() in place of setenv() (setenv() is not
+ POSIX compliant).</para>
+ </listitem>
+ <listitem>
+ <para>a mailto option set to "" is now equivalent to
+ "mail(false)".</para>
+ </listitem>
+ <listitem>
+ <para>corrected the bug which used to make a bootrun and runfreq(1)
+ job executed twice when fcron's start occurs in an interval of
+ execution of the job.</para>
+ </listitem>
+ <listitem>
+ <para>corrected the bug which used to make fcron crash after
+ serial_array is resized.</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 0.8.3 to 0.9.0</title>
+ <listitem>
+ <para>support of options in fcrontabs. Options can be specific to a
+ line or defined once for every line located after their
+ definition (a special option "reset" set all options to their
+ default). Some options also have too names: a long name and an
+ abbreviation.</para>
+ </listitem>
+ <listitem>
+ <para>jobs can now be run be run one after the other (option
+ "serial"): when the job should normally be run, it is added to a
+ queue, which entries are executed one by one. It permits to avoid
+ the use of a lot of system resources for a brief moment by the
+ simultaneous execution of several tasks.</para>
+ </listitem>
+ <listitem>
+ <para>jobs can be run at system start up if they should have been
+ run during system down time (option "bootrun").</para>
+ </listitem>
+ <listitem>
+ <para>root can run jobs as an another user (option "runas")</para>
+ </listitem>
+ <listitem>
+ <para>user can set a nice value to a job, but only root can use a
+ negative value (a negative value will increase priority)</para>
+ </listitem>
+ <listitem>
+ <para>user can choose to perform a logic AND or a logic OR between
+ day of month and day of week (option "dayor" and "dayand")</para>
+ </listitem>
+ <listitem>
+ <para>user can choose to mail the output of jobs (option "mail") if
+ any, and can force fcron to send a mail even if output is
+ zero-length (option "forcemail").</para>
+ </listitem>
+ <listitem>
+ <para>fixed the bug which used to make fcron run a job with a
+ runfreq set to 1 at a wrong time.</para>
+ </listitem>
+ <listitem>
+ <para>fixed a bug which used to make fcrontab crash after several
+ corrections in edit mode.</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 0.8.2 to 0.8.3</title>
+ <listitem>
+ <para>(all this bugs appeared in version 0.8.2 :)</para>
+ </listitem>
+ <listitem>
+ <para>fixed the bug which used to make fcron crash after a
+ SIGHUP</para>
+ </listitem>
+ <listitem>
+ <para>fixed the bug which used to prevent fcron from running some
+ job based on time and date</para>
+ </listitem>
+ <listitem>
+ <para>fixed the bug which used to makes fcron run the jobs one
+ second too late</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 0.8.1 to 0.8.2</title>
+ <listitem>
+ <para>code has been optimized: The jobs are now queued in order of
+ execution. It permits avoid useless tests of all jobs every time
+ fcron wakes up, speeds up the determination of the time fcron
+ should sleep, speeds up the processing after the end of a job,
+ etc. I don't know why I haven't made it before :-) ...</para>
+ </listitem>
+ <listitem>
+ <para>fcrontab has been improved: it is now more stable (many bugs
+ which used to make fcrontab crash in case of errors in the
+ fcrontab has been fixed). Plus, it now asks if you want to make
+ corrections if needed when editing.</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 0.8.0 to 0.8.1</title>
+ <listitem>
+ <para>ported to FreeBSD 4.0</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>From version 0.7.0 to 0.8.0</title>
+ <listitem>
+ <para>corrected the bug which keep normal users from listing and
+ editing their current configuration file with fcrontab -l or
+ -e.</para>
+ </listitem>
+ <listitem>
+ <para>corrected the bugs which used to block fcron when a task was
+ marked for execution but fcron stopped before it has been
+ launched, and when fcron stopped after the end of a job but
+ before the output has been mailed.</para>
+ </listitem>
+ <listitem>
+ <para>day of week 0 and 7 now both mean Sunday.</para>
+ </listitem>
+ <listitem>
+ <para>the abbreviations of months and day of week are not any more
+ case dependent.</para>
+ </listitem>
+ <listitem>
+ <para>months are now defined from 1 to 12 (and not from 0 to 11) (it
+ was a little bit illogical :-).</para>
+ </listitem>
+ <listitem>
+ <para>you can now force spaces in strings if you place them in
+ quotes.</para>
+ </listitem>
+ <listitem>
+ <para>I discovered ispell :-) ...</para>
+ </listitem>
+ <listitem>
+ <para>I've added a kind of signature in the formated configuration
+ files in order to keep the daemon from attempting to read an old
+ configuration file which doesn't use the same syntax.</para>
+ </listitem>
+ <listitem>
+ <para>You can now install a file with fcrontab from standard
+ input.</para>
+ </listitem>
+ <listitem>
+ <para>others minor adds and bug corrections.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-parent-document:("fcron-doc.sgml" "book" "chapter" "sect1" "")
+End:
+-->
+
\ No newline at end of file
--- /dev/null
+<!--
+Fcron documentation
+Copyright 2000-2006 Thibault Godouet <fcron@free.fr>
+Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License,
+Version 1.1 or any later version published by the Free Software
+Foundation.
+A copy of the license is included in gfdl.sgml.
+-->
+
+<!-- $Id: faq.sgml,v 1.1 2006-02-05 19:25:46 thib Exp $ -->
+
+<sect1 id="faq">
+ <title>Frequently Asked Questions</title>
+ <para>This FAQ intends to complement the man pages by following a more
+practical approach.</para>
+ <para>If you think a QA should be added, please mail me it!</para>
+ <qandaset>
+ <qandaentry>
+ <question>
+ <para>How does fcron handle system clock adjustments?</para>
+ </question>
+ <answer>
+ <para>
+ First, you must understand that fcron determines, for each job, its next
+time and date of execution. It then determines which of those jobs would be the
+next to run and then, sleeps until that job should be run. In other words, fcron
+doesn't wake up like Vixie cron each minute to check all job in case one should
+be run ... and it avoids some problems associated with clock adjusts.</para>
+ <para>
+ This means that if the new time value is set into the past, fcron won't
+run a particular job again. For instance, suppose the real time and system clock
+are 3:00, so the next job cannot be scheduled to run before 3:00, as it would
+have already been run and re-scheduled.</para>
+ <para>
+ First, suppose you set your system clock into the past, say to 2:00,
+Presuming that the last run was shortly before 3:00. then fcron will sleep until
+the next job should be executed. The execution time for a job is determined by
+identifying the last time that the job ran and computing the next scheduled
+time. This means that the next scheduled time must be on or after 3:01.
+Therefore, in this example, fcron will not run a job for at least one
+hour.</para>
+ <para>
+ Next, if you set the system time into the future, say to 4:00, fcron will
+run every job scheduled between the old and the new time value once, regardless
+of how many times it would have been scheduled. When fcron wakes up to run a job
+after the time value has changed, it runs all the jobs which should have run
+during the interval because they are scheduled to run in a past time.</para>
+ <para>
+ As special case is when "@xxx" style scheduling rules are involved, you
+must consider the "adjustment-interval". The "adjustment-interval" is the time
+difference between the original system time and the new system time. The concerned
+jobs will run at "adjust-interval" too
+early or too late depending of the nature of the adjust.</para>
+ <para>
+ To conclude, fcron behaves quite well for small clock adjusts. Each job
+which should have run does so once, but not exactly at the correct time as if
+the job were scheduled within the adjustment interval. But, if you have to make
+a big change in the time and date, you should probably reset all the scheduled
+"nextexe" by running "fcrontab -z" on all the fcrontabs.</para>
+ </answer>
+ </qandaentry>
+ <qandaentry>
+ <question>
+ <para>How does fcron handle daylight saving time changes?</para>
+ </question>
+ <answer>
+ <para>There are two types of daylight saving time change:
+the remove-one-hour change (for instance, "at 3:00, it will be 2:00"),
+and the add-one-hour one (for instance, "at 2:00, it will be 3:00").
+In both cases, fcron will run the job only once (more precisely, it won't
+run the job twice as many as it should have).</para>
+ <para>In the first case, the official time changes as follow
+(in order of real chronological time): [x, 2:00] -> i1: [2:00, 3:00]
+ -> i2: [2:00, 3:00] -> [3:00, y]. i1 and i2 are the names of the two
+intervals [2:00, 3:00]. For this kind of DST change, a job which should
+run between 2:00 and 3:00 will run either in i1 or in i2, but not both.
+Consequently, a job scheduled to run every day at 2:30 (for instance)
+will be run only once. There is no way for a user to know if the job will
+be run in i1 or i2.</para>
+ <para>In the second case, there is a gap in time:
+the official time changes as follow (in order of real chronological time):
+[x, 2:00] -> [3:00, y]. A job scheduled between 2:00 and 3:00 will get
+run once, and only once, even if it should have been run several times.
+For instance, a job which should have run every 10 minutes will run only
+once, not 6 times, between 1:59 and 3:01. A job scheduled to run at
+2:xx will run at 3:xx. For instance, if a job is scheduled to run
+every day at 2:30, it will run at 3:30 the day of this kind of DST change.
+</para>
+ </answer>
+ </qandaentry>
+ <qandaentry>
+ <question>
+ <para>What about fcron and software suspend
+ (aka. suspend to RAM, to disk)?</para>
+ </question>
+ <answer>
+ <para>We suppose here that you are using swsusp and the hibernate
+ script to do a "suspend to disk", but it should be similar
+ with other methods.</para>
+ <para>When you switch on your computer after a suspend to disk,
+ the system time will be incorrect, and will then be corrected
+ by the hibernate script. Before it is corrected, fcron may
+ compute the time and date of the next execution of a job:
+ the computation would then be incorrect (please see the entry
+ about system clock adjustment in the present FAQ).</para>
+ <para>So you should have the hibernate script stop fcron before
+ the suspend, and then restart it when the system is switched on,
+ ie. put a line like "RestartServices fcron" in your hibernate.conf
+ file. That way, the system time will always be correct when
+ fcron runs (assuming that fcron is started after the system time
+ is corrected).</para>
+ </answer>
+ </qandaentry>
+ <qandaentry>
+ <question>
+ <para>How can I prevent fcrontab from considering the first
+"word" of my command line as a user name i.e. "runas(word)"?</para>
+ </question>
+ <answer>
+ <para>
+ Suppose you have an user called "echo" (weird idea ... :)) ). If you use
+the line '* * * * * echo "Hello!"' in root's fcrontab, "echo" will be
+interpreted as "runas(echo)".</para>
+ <para>To suppress that, put your command in quotes:
+<programlisting>* * * * * 'echo "Hello!"'</programlisting> will work as
+expected as quotes are allowed for the shell command but not for the user
+name.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>
+ I have a job which usually terminates with a non-zero status. When it
+does, I receive a mail with the exit status even if the command had no output.
+How can I avoid the mail?</para>
+ </question>
+ <answer>
+ <para>
+ You could disable mail entirely by setting the "mail" option to "no". But,
+if you still want to receive the standard output as mail, you can add an command
+which always evaluates to 0, like "/bin/true", after your primary command. This
+will not affect your job nor create additional output. For example:</para>
+ <programlisting>
+* * * * * /a/non/zero/status/job ; /bin/true</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>What does "loadavg" mean anyway?</para>
+ </question>
+ <answer>
+ <para>
+ The "/proc/loadavg" file provides loadavg values. These values are (in
+order): the system load averages for the past 1, 5, and 15 minutes; a count of
+the (active tasks/active processes); the pid of last process run;
+ </para>
+ <para>
+ The active task count includes those processes marked as running or
+uninterruptable. A load average is an estimate of the average number of
+processes running within a specified period. The load averages are computed from
+active task count. They are updated each time active task counts are taken.
+ </para>
+ <para>
+<!-- It sure would be nice for some MathML here. -->
+The load average formula is: <programlisting>
+loadavg(d,n) = active_task_cnt - (active_task_cnt - old_loadavg)*(1/exp(d/n)
+</programlisting>
+where: d is the time interval between active task count readings, typically every
+5 seconds; n is the time over which the readings are averaged.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>How can I use fcrontab in scripts?</para>
+ </question>
+ <answer>
+ <para>
+ You can use pipes with "<command>fcrontab -l</command>" (list the
+fcrontab) and "<command>fcrontab -</command>" (read the new fcrontab from
+input). For example: </para>
+ <screen> <command>echo -e "`fcrontab -l | grep -v exim`\n0 * * * * /usr/sbin/exim -q" | fcrontab -</command></screen>
+ <para>
+ can be used to add a line. Another way to do it would be to:
+list the fcrontab settings into a temporary file ("<command>fcrontab -l >
+tmpfile</command>"); modify the temporary file ("<command>echo $LINE >>
+tmpfile</command>"); replace the original fcrontab by the temporary; and
+finally, remove the temporary file ("<command>fcrontab tmpfile ; rm -f
+tmpfile</command>").
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Can I use fcron from time to time, for instance in a
+script?</para>
+ </question>
+ <answer>
+ <para>Let's suppose you use fcron in your ppp-up script. Fcron
+can permit you to run some jobs at connection startup, but not at each
+connection, like it would be if the job was run directly by the ppp-up script:
+for instance, only once every week.</para>
+ <para><example>
+ <title>Using fcron in a script: running a job once
+every day, week, etc, at dialup connection</title>
+ <para>You can use a script like:</para>
+ <programlisting>
+# A ppp-up script ...
+# run the jobs pending, then returns:
+fcron -f -y -o
+</programlisting>
+ <para>in conjunction with a fcrontab file like:</para>
+ <programlisting>
+# a fcrontab file ...
+%random(no),weekly,stdout * * /a/command/to/download/latest/mozilla/release
+%monthly,stdout * * * /update/junkbuster/config/files
+</programlisting>
+ </example></para>
+ <para>You can also use fcron to run some jobs until the end of
+the connection. For instance, you can make fetchmail retrieve mails more often
+during connection: we suppose that it is configured to retrieve mails every
+hour, which launches a dialup connection if necessary, and we want it to check
+for mails every 5 minutes while connected.</para>
+ <para><example>
+ <title>Using fcron in a script: running a job until the
+end of the connection</title>
+ <para>ppp-up script:</para>
+ <programlisting>
+# A ppp-up script ...
+# run fcron at the beginning of the connection:
+fcron -b
+</programlisting>
+ <para>ppp-down script:</para>
+ <programlisting>
+# A ppp-down script ...
+# stop fcron at the end of the connection:
+# -- Warning: killall may have unwanted effect on non linux systems --
+killall -TERM fcron
+</programlisting>
+ <para>the fcrontab:</para>
+ <programlisting>
+# a fcrontab file ...
+@volatile,first(0) 5 fetchmail
+</programlisting>
+ </example></para>
+
+ <para>If you run fcron in several scripts, or if you run fcron
+as a daemon and want also to run fcron in scripts, then you should use fcron,
+fcrontab and fcrondyn's <option>--configfile</option>.</para>
+ <para>For more details, see fcron's options
+<option>--once</option>, <option>--nosyslog</option>,
+<option>--firstsleep</option> and <option>--configfile</option> in <link
+linkend="fcron.8">&fcron;(8)</link>, and fcrontab's options &optvolatile;,
+&optstdout;, &optfirst; in <link
+linkend="fcrontab.5">&fcrontab;(5)</link></para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Can I run fcron without root's privileges?</para>
+ </question>
+ <answer>
+ <para>Yes, you can. To do that, see the
+following instructions, but please note that fcrondyn currently does *not* work
+without root privileges.</para>
+ <orderedlist>
+ <listitem>
+ <para>First, create a directory where you'll install fcron,
+ and some subdirectories:</para>
+ <screen><prompt>bash$
+</prompt> <command>mkdir /home/thib/fcron</command>
+<prompt>bash$</prompt> <command>cd /home/thib/fcron</command>
+<prompt>bash$</prompt> <command>mkdir doc man spool</command></screen>
+ </listitem>
+ <listitem>
+ <para>Then, run configure with option
+<option>--with-run-non-privileged</option>, set all user names and groups to yours,
+and set appropriately the paths:</para>
+ <para><warning>
+ <para>This option allows a non privileged user to run
+ fcron. When used, fcron does not change its rights before running a job
+ (i.e., if joe runs fcron, every job will run as joe). It means that
+ <emphasis>YOU SHOULD NOT RUN FCRON AS A PRIVILEGED USER WHEN COMPILED
+ WITH THIS OPTION</emphasis> or you'll have a serious security
+ hole.</para> </warning></para>
+ <screen><prompt>bash$
+</prompt> <command>./configure --with-run-non-privileged --with-rootname=thib
+--with-rootgroup=thib --with-username=thib --with-groupname=thib
+--with-etcdir=/home/thib/fcron --with-piddir=/home/thib/fcron
+--with-fifodir=/home/thib/fcron --with-spooldir=/home/thib/fcron/spool
+--with-docdir=/home/thib/fcron/doc --prefix=/home/thib/fcron</command></screen>
+ </listitem>
+ </orderedlist>
+ <para>The rest of the installation is described in the
+<link linkend="install">install file</link>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Has fcron some incompatibilities with Vixie cron?</para>
+ </question>
+ <answer>
+ <para>As far as I know, fcron supports completely the syntax of
+ Vixie cron's crontab, excepted the @* syntax (@annually,
+ @weekly, etc: if you use that, you will have to replace it
+ with the explicit equivalent given in crontab(5)). So you
+ should not have much problem with that (otherwise, please
+ contact me at &email;).</para>
+ <para>The main problem is about the management of the system (f)crontab.
+ Vixie cron monitors the changes on /etc/crontab every minute,
+ and automatically takes into account the changes if any.
+ As for now, fcron do not do that. Fcron do not support the
+ /etc/cron.d/ dir too, as it is just an extension of the /etc/crontab
+ file.
+ But be reassured: /etc/cron.{daily,weekly,monthly} are supported
+ by fcron (in fact, those dirs are not managed by fcron directly,
+ but by run-parts, which is independent from fcron).</para>
+ <para>So if you want to replace transparently Vixie cron by fcron,
+ all you have to do is creating a /usr/bin/crontab link to
+ /usr/bin/crontab, and to reinstall the system (f)crontab
+ with fcrontab /etc/crontab each time you modify it
+ (if you find something else to do, please tell me!).</para>
+ <para>You can also use the script script/check_system_crontabs
+ to generate a system fcrontab from /etc/(f)crontab and /etc/cron.d/,
+ and install it automatically. If you choose to do that, take
+ a look at the beginning of the script: you will find insctructions
+ on how to use it -- and a few warnings you should pay attention to.
+ With this script, the behavior of fcron should be very similar
+ to Vixie cron's one concerning /etc/crontab and /etc/cron.d/.
+ </para>
+ </answer>
+ </qandaentry>
+ <qandaentry>
+ <question>
+ <para>How can I emulate an anacron entry?</para>
+ </question>
+ <answer>
+ <para>You should use a line similar to the following one:</para>
+ <para>@volatile,first(xx) BIG-period /your/command</para>
+ <para>where xx is the time you would have put in your anacron line.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+</sect1>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-parent-document:("fcron-doc.sgml" "book" "chapter" "sect1" "")
+End:
+-->
--- /dev/null
+<!doctype book PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+
+<!ENTITY % decl SYSTEM "fcron-doc.mod">
+%decl;
+
+]>
+
+<!--
+Fcron documentation
+Copyright 2000-2006 Thibault Godouet <fcron@free.fr>
+Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License,
+Version 1.1 or any later version published by the Free Software
+Foundation.
+A copy of the license is included in gfdl.sgml.
+-->
+
+<!-- $Id: fcron-doc.sgml,v 1.1 2006-02-05 19:25:05 thib Exp $ -->
+
+<book lang="en" id="fcron-doc">
+ <bookinfo id="bookinfo">
+ <title>Fcron documentation</title>
+ <date>&date;</date>
+ <releaseinfo>Fcron &version; <![%devrelease; [
+(<emphasis>development</emphasis> release)]]></releaseinfo>
+ <authorgroup>
+ <author>
+ <firstname>Thibault</firstname>
+ <surname>Godouet</surname>
+ </author>
+ </authorgroup>
+ <copyright>
+ <year>©rightdate;</year>
+ <holder>Thibault Godouet</holder>
+ </copyright>
+ <legalnotice id="legalnotice">
+ <para><citetitle>Fcron documentation</citetitle> Copyright ©
+©rightdate; Thibault Godouet, &email;</para>
+ <para>Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation; with the Back-Cover
+Texts being <!-- ulink hack because this legal notice gets diverted --> <ulink
+url="#backcover">Back Cover Text</ulink>. A copy of the license is included in
+<xref linkend="fdl">.</para>
+ </legalnotice>
+
+ <abstract>
+ <para>&Fcron; is distributed under GPL license (please read the
+license in <xref linkend="gpl">).</para>
+ <para>Project home page: &webpage;</para>
+ <para>Author: Thibault GODOUET &email;</para>
+ </abstract>
+ <abstract>
+ <para>You can get the latest HTML version of this document at:
+&docurl; . The SGML DocBook sources are included with fcron packages.</para>
+ </abstract>
+
+ <![%devrelease; [
+ <abstract>
+ <para>
+ <warning>
+ <para>This release (&version;) - as every version of the
+form x.y.z where y is an odd number -, is a <emphasis>development</emphasis>
+release, so it may contain more bugs (and uglier ones :)) ) than a stable
+release.
+ </para>
+ </warning>
+ </para>
+ </abstract>
+ ]]>
+ </bookinfo>
+
+ <chapter id="how-and-why">
+ <title>Fcron: how and why?</title>
+ <para>This chapter will explain you what is &fcron;, why you should need
+it, and how to install it.</para>
+ &about;
+ &install;
+ &changes;
+ &relnotes;
+ &todo;
+ &thanks;
+ </chapter>
+
+ <chapter id="using-fcron">
+ <title>Using fcron ...</title>
+ <sect1 id="manpages">
+ <title>Manual pages of fcron</title>
+ <para>This section contains the manual pages, which tell you how to use &fcron;.</para>
+ &fcron.8;
+ &fcron.conf.5;
+ &fcrontab.1;
+ &fcrontab.5;
+ &fcrondyn.1;
+ </sect1>
+ &faq;
+ </chapter>
+
+ &gpl;
+ &fdl;
+</book>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-indent-data:nil
+sgml-local-ecat-files:("psgml-ecat.file")
+End:
+-->
--- /dev/null
+<!--
+Fcron documentation
+Copyright 2000-2004 Thibault Godouet <fcron@free.fr>
+Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License,
+Version 1.1 or any later version published by the Free Software
+Foundation.
+A copy of the license is included in gfdl.sgml.
+-->
+
+<!-- $Id: fcron.8.sgml,v 1.1 2006-02-05 19:26:12 thib Exp $ -->
+
+<refentry id="fcron.8">
+ <refmeta>
+ <refentrytitle>fcron</refentrytitle>
+ <manvolnum>8</manvolnum>
+ <refmiscinfo>Fcron &version; <![%devrelease; [
+(<emphasis>development</emphasis> release)]]></refmiscinfo>
+ <refmiscinfo>&date;</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>fcron</refname>
+ <refpurpose>démon pour exécuter des tâches planifiées</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>fcron</command>
+ <arg>-c <replaceable>fichier</replaceable></arg>
+ <arg>-d</arg>
+ <arg>-b</arg>
+ <arg>-s <replaceable>temps</replaceable></arg>
+ <arg>-m <replaceable>nombre</replaceable></arg>
+ <arg>-q <replaceable>nombre</replaceable></arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>fcron</command>
+ <arg>-c <replaceable>fichier</replaceable></arg>
+ <arg>-d</arg>
+ <arg>-f</arg>
+ <arg>-o</arg>
+ <arg>-y</arg>
+ <arg>-l <replaceable>temps</replaceable></arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>fcron</command>
+ <arg>-n <replaceable>rép</replaceable></arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>fcron</command>
+ <arg>-h</arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>fcron</command>
+ <arg>-V</arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>&Fcron; devrait être lancé par un script <filename>/etc/rc</filename>
+ ou <filename>/etc/rc.local</filename>. À moins que l'option
+ <option>-f</option> (ou <option>--foreground</option>) n'ait été fournie,
+ cette commande rend la main immédiatement. Ainsi, vous n'avez pas besoin
+ de la lancer avec « & ».
+ </para>
+ <para>&Fcron; charge les fichiers &fcrontabf; des utilisateurs (voir
+ <link linkend="fcrontab.5">&fcrontab;(5)</link>) précédemment installés
+ par <command>fcrontab</command> (voir <link
+ linkend="fcrontab.1">&fcrontab;(1)</link>). Ensuite, &fcron; calcule la
+ date et l'heure de la prochaine exécution de chaque tâche, détermine
+ combien de temps il va devoir s'endormir et s'endort pendant cette durée.
+ Lorsqu'il se réveille, il vérifie toutes les tâches chargées et les
+ lancent si nécessaire. Lorsqu'une tâche est exécutée, &fcron; se dédouble
+ (Ndt : fork), modifie ses permissions utilisateur et groupe pour
+ correspondre à celles de l'utilisateur pour lequel la tâche est exécutée,
+ exécute cette tâche et envoie par courriel les sorties à l'utilisateur
+ (ce comportement peut être modifié : voir <link
+ linkend="fcrontab.5">&fcrontab;(5)</link>).
+ </para>
+ <para>Les messages d'informations sur ce qu'est en train de faire &fcron;
+ sont envoyés à <application>syslogd</application>(8) en utilisant ses
+ capacités <emphasis>cron</emphasis>, priorité <emphasis>notice</emphasis>.
+ Les avertissements ou les messages d'erreurs sont respectivement envoyés
+ avec la priorité <emphasis>warning</emphasis> ou <emphasis>error</emphasis>.
+ </para>
+ <para>
+ <note>
+ <para>&fcron; s'endort au moins &firstsleep; secondes après qu'il ait
+ été lancé avant d'exécuter une tâche, pour éviter de consommer trop
+ de ressources pendant le démarrage du système.
+ </para>
+ </note>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+ <variablelist>
+ <varlistentry>
+ <term><option>-f</option></term>
+ <term><option>--foreground</option></term>
+ <listitem>
+ <para>Ne pas dédoubler en arrière plan. Dans ce mode de
+ fonctionnement, &fcron; enverra les messages d'information sur la
+ sortie d'erreur aussi bien qu'à syslogd.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-b</option></term>
+ <term><option>--background</option></term>
+ <listitem>
+ <para>Forcer l'exécution en arrière plan, même si &fcron; a été
+ compilé pour être lancé en avant plan par défaut.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-s</option> <replaceable>sec</replaceable></term>
+ <term><option>--savetime</option> <replaceable>sec</replaceable></term>
+ <listitem>
+ <para>Enregistrer les fichiers &fcrontabf; sur disque toutes les
+ <replaceable>sec</replaceable> secondes
+ (la valeur par défaut est 1800).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-m</option> <replaceable>n</replaceable></term>
+ <term><option>--maxserial</option> <replaceable>n</replaceable></term>
+ <listitem>
+ <para>Positionner à <replaceable>n</replaceable> le nombre maximum
+ de tâches qui peuvent être exécutées simultanément. La valeur
+ par défaut est &serialmaxrunning;.
+ </para>
+ <para>&voiraussi; option &optserial; de &fcrontab;(5).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-q</option> <replaceable>n</replaceable></term>
+ <term><option>--queuelen</option> <replaceable>n</replaceable></term>
+ <listitem>
+ <para>Positionner à <replaceable>n</replaceable> le nombre de tâches
+ que les files d'attente sérialisée (Ndt : serial) et charge
+ système (Ndt : lavg) peuvent contenir.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-c</option> <replaceable>fichier</replaceable></term>
+ <term><option>--configfile</option> <replaceable>fichier</replaceable></term>
+ <listitem>
+ <para>Indiquer à &fcron; d'utiliser le fichier de configuration
+ <replaceable>fichier</replaceable> au lieu du fichier de configuration
+ par défaut <filename>&etc;/&fcron.conf.location;</filename>. Pour
+ interagir avec un processus &fcron; en cours d'exécution, &fcrontab;
+ doit utiliser le même fichier de configuration (qui est défini par
+ l'option <option>-c</option> de &fcrontab;). De cette manière,
+ plusieurs processus &fcron; peuvent être exécutés simultanément
+ sur la même machine (mais chaque processus &fcron; *doit* avoir
+ un répertoire de travail (Ndt : spool directory) et un
+ fichier pid différents des autres processus).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-o</option></term>
+ <term><option>--once</option></term>
+ <listitem>
+ <para>Exécuter toutes les tâches qui doivent l'être au moment où
+ &fcron; a été lancé, attendre que les tâches s'achèvent et s'arrêter.
+ Positionne <option>firstsleep</option> à 0. Peut être pratique
+ particulièrement lorsqu'elle est utilisée avec les options
+ <option>-y</option> et <option>-f</option> dans un script lançant,
+ par exemple, une connexion par ligne commutée (Ndt : dialup
+ connection).
+ </para>
+ <para>&voiraussi; les options &optvolatile; et &optstdout; de fcrontab.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-y</option></term>
+ <term><option>--nosyslog</option></term>
+ <listitem>
+ <para>Ne pas journaliser vers syslog. Peut être utile lors d'une
+ exécution en arrière plan.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-l</option> <replaceable>time</replaceable></term>
+ <term><option>--firstsleep</option> <replaceable>time</replaceable></term>
+ <listitem>
+ <para>Définir le délai d'attente initial (en secondes) avant
+ qu'une tâche ne soit exécutée, la valeur par défaut est
+ &firstsleep; secondes.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-n</option> <replaceable>rép</replaceable></term>
+ <term><option>--newspooldir</option> <replaceable>rép</replaceable></term>
+ <listitem>
+ <para>Créer <replaceable>rép</replaceable> comme nouveau répertoire
+ de travail (Ndt : spool directory) de &fcron;. Positionner
+ correctement son mode et son propriétaire. Puis, quitter.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-h</option></term>
+ <term><option>--help</option></term>
+ <listitem>
+ <para>Afficher une brève description des options.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-V</option></term>
+ <term><option>--version</option></term>
+ <listitem>
+ <para>Afficher un message d'information à propos de &fcron;. Cela
+ inclut sa version et la licence sous laquelle il est distribué.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-d</option></term>
+ <term><option>--debug</option></term>
+ <listitem>
+ <para>Démarrer en mode débogage (plus de détails sur la sortie
+ d'erreur stderr - si l'option <option>-f</option> est fournie - et
+ dans le fichier de journalisation).</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>Valeurs renvoyÉes</title>
+ <para>&Fcron; renvoie &exitok; lorsqu'il quitte normalement, et &exiterr;
+ en cas d'erreur.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Signaux</title>
+ <variablelist>
+ <varlistentry>
+ <term><constant>SIGTERM</constant></term>
+ <listitem>
+ <para>Enregistrer la configuration (temps restant jusqu'à la prochaine
+ exécution, date et heure de la prochaine exécution, etc), attendre
+ la fin des toutes les tâches en cours d'exécution et quitter.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>SIGUSR1</constant></term>
+ <listitem>
+ <para>Forcer &fcron; à recharger sa configuration.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>SIGUSR2</constant></term>
+ <listitem>
+ <para>Faire journaliser à &fcron; sa planification actuelle dans
+ syslog. Il permet également d'activer ou désactiver l'affichage
+ des informations de débogage dans syslog.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>SIGHUP</constant></term>
+ <listitem>
+ <para>Demander à &fcron; de vérifier si la configuration a été
+ modifiée (ce signal est utilisé par &fcrontab;(5)).
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>ConformitÉ</title>
+ <para>Devrait être conforme aux spécifications POSIX.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Fichiers</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>&etc;/&fcron.conf.location;</filename></term>
+ <listitem>
+ <para>Fichier de configuration de &fcron;, &fcrontab et &fcrondyn; :
+ contient les chemins (répertoire spool, fichier pid) et les
+ programmes par défaut à utiliser (éditeur, shell, etc.). Voir
+ <link linkend="fcron.conf.5">&fcron.conf(5)</link> pour plus de
+ détails.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>&etc;/&fcron.allow;</filename></term>
+ <listitem>
+ <para>Utilisateurs autorisés à utiliser &fcrontab; et &fcrondyn;
+ (un seul nom par ligne, le nom spécial « all »
+ signifiant tout le monde).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>&etc;/&fcron.deny;</filename></term>
+ <listitem>
+ <para>Utilisateurs qui ne sont pas autorisés à utiliser &fcrontab;
+ et &fcrondyn; (même format que le fichier précédent).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>&etc;/pam.d/fcron</filename> (ou
+ <filename>&etc;/pam.conf</filename>)
+ </term>
+ <listitem>
+ <para>Fichier de configuration <productname>PAM</productname> pour
+ &fcron;. Voir &pam;(8) pour plus de détails.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ &manpage-foot;
+
+ <refsect1>
+ <title>Traduction</title>
+ <para>Ce document est une traduction réalisée par Alain Portal
+ <aportal AT univ-montp2 DOT fr>. le xx novembre 2005
+ </para>
+ <para>L'équipe de traduction a fait le maximum pour réaliser une adaptation
+ française de qualité. La version anglaise la plus à jour de ce document
+ est toujours consultable via la commande : « <emphasis>LANG=en
+ man 8 fcron</emphasis> ».
+ N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas,
+ toute erreur dans cette page de manuel.
+ </para>
+ </refsect1>
+
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-parent-document:("fcron-doc.sgml" "book" "chapter" "sect1" "")
+End:
+-->
\ No newline at end of file
--- /dev/null
+<!--
+Fcron documentation
+Copyright 2000-2004 Thibault Godouet <fcron@free.fr>
+Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License,
+Version 1.1 or any later version published by the Free Software
+Foundation.
+A copy of the license is included in gfdl.sgml.
+-->
+
+<!-- $Id: fcron.conf.5.sgml,v 1.1 2006-02-05 19:25:39 thib Exp $ -->
+
+<refentry id="fcron.conf.5">
+ <refmeta>
+ <refentrytitle>fcron.conf</refentrytitle>
+ <manvolnum>5</manvolnum>
+ <refmiscinfo>Fcron &version; <![%devrelease; [
+(<emphasis>development</emphasis> release)]]></refmiscinfo>
+ <refmiscinfo>&date;</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>fcron.conf</refname>
+ <refpurpose>Fichier de configuration pour fcron et fcrontab</refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <abstract>
+ <para>Cette page décrit la syntaxe utilisée dans le fichier de
+ configuration de <link linkend="fcrontab.1">&fcrontab;</link>(1),
+ <link linkend="fcrondyn.1">&fcrondyn;</link>(1) et
+ <link linkend="fcron.8">&fcron;</link>(8).
+ </para>
+ </abstract>
+ <para>Les lignes blanches, les lignes débutant par le symbole dièse
+ « # ») (qui sont considérées comme étant des commentaires),
+ les espaces ou les tabulations placées en début de ligne sont ignorées.
+ Chaque ligne d'un fichier de configuration &fcron.conf est de la forme
+ <blockquote><para>nom = valeur</para></blockquote> où les espaces autour
+ du signe d'égalité « = » sont ignorés et optionnels.
+ Les espaces en fin de ligne sont également ignorées.
+ </para>
+ <para>Les noms suivants sont reconnus (leur valeur par défaut est
+ entre parenthèses) :
+ </para>
+ <para>
+ <variablelist><title>Variables valides dans un fichier fcron.conf</title>
+ <varlistentry>
+ <term><varname>fcrontabs</varname>=<replaceable>répertoire</replaceable>
+ (<filename>&fcrontabsdir;</filename>)
+ </term>
+ <listitem>
+ <para>Répertoire spool de &fcron;.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>pidfile</varname>=<replaceable>chemin-fichier</replaceable>
+ (<filename>&fcron.pid;</filename>)
+ </term>
+ <listitem>
+ <para>Emplacement du fichier pid de &fcron; (nécessaire au bon
+ fonctionnement de &fcrontab;).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>fifofile</varname>=<replaceable>chemin-fichier</replaceable>
+ (<filename>&fcron.fifo;</filename>)
+ </term>
+ <listitem>
+ <para>Emplacement du fichier fifo de &fcron; (nécessaire à
+ &fcrondyn; pour communiquer avec fcron).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>fcronallow</varname>=<replaceable>chemin-fichier</replaceable>
+ (<filename>&etc;/&fcron.allow;</filename>)
+ </term>
+ <listitem>
+ <para>Emplacement du fichier fcron.allow.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>fcrondeny</varname>=<replaceable>chemin-fichier</replaceable>
+ (<filename>&etc;/&fcron.deny;</filename>)
+ </term>
+ <listitem>
+ <para>Emplacement du fichier fcron.deny.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>shell</varname>=<replaceable>chemin-fichier</replaceable>
+ (<filename>&shell;</filename>)
+ </term>
+ <listitem>
+ <para>Emplacement du shell par défaut appelé par &fcron; pour le
+ lancement d'une tâche.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>sendmail</varname>=<replaceable>chemin-fichier</replaceable>
+ (<filename>&sendmail;</filename>)
+ </term>
+ <listitem>
+ <para>Emplacement du programme d'envoi des courriels appelé par
+ &fcron; pour envoyer les sorties produites par la tâche.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>editor</varname>=<replaceable>chemin-fichier</replaceable>
+ (<filename>&editor;</filename>)
+ </term>
+ <listitem>
+ <para>Emplacement de l'éditeur de texte par défaut lors de
+ l'invocation de la commande « fcrontab -e ».
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>Tous les chemins fichiers sont complets et absolus
+ (c-à-d débutant par un « / »).
+ </para>
+ <para>Pour exécuter simultanément plusieurs instances de &fcron; sur la
+ même machine, vous devez utiliser un fichier de configuration différent
+ pour chaque instance. Chaque instance doit avoir un
+ <varname>fcrontabs</varname>, <varname>pidfile</varname> et
+ <varname>fifofile</varname> différent. Ensuite, utiliser l'option
+ <parameter>-c</parameter> de la ligne de commande de
+ <link linkend="fcron.8">&fcron;</link>(8) pour indiquer à quel fichier de
+ configuration (ou à quelle instance) se référer.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Fichiers</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>&etc;/&fcron.conf.location;</filename></term>
+ <listitem>
+ <para>Fichier de configuration de &fcron;, &fcrontab et &fcrondyn; :
+ contient les chemins (répertoire spool, fichier pid) et les
+ programmes par défaut à utiliser (éditeur, shell, etc.). Voir
+ <link linkend="fcron.conf.5">&fcron.conf</link>(5) pour plus
+ de détails.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>&etc;/&fcron.allow;</filename></term>
+ <listitem>
+ <para>Utilisateurs autorisés à utiliser &fcrontab; et &fcrondyn;
+ (un seul nom par ligne, le nom spécial « all » signifiant
+ tout le monde).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>&etc;/&fcron.deny;</filename></term>
+ <listitem>
+ <para>Utilisateurs qui ne sont pas autorisés à utiliser
+ &fcrontab; et &fcrondyn; (même format que le fichier précédent).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>&etc;/pam.d/fcron</filename> (ou
+ <filename>&etc;/pam.conf</filename>)
+ </term>
+ <listitem>
+ <para>Fichier de configuration <productname>PAM</productname> pour
+ &fcron;. Voir &pam;(8) pour plus de détails.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ &manpage-foot;
+
+ <refsect1>
+ <title>Traduction</title>
+ <para>Ce document est une traduction réalisée par Alain Portal
+ <aportal AT univ-montp2 DOT fr>. le xx novembre 2005
+ </para>
+ <para>L'équipe de traduction a fait le maximum pour réaliser une adaptation
+ française de qualité. La version anglaise la plus à jour de ce document
+ est toujours consultable via la commande : « <emphasis>LANG=en
+ man 5 fcron.conf</emphasis> ».
+ N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas,
+ toute erreur dans cette page de manuel.
+ </para>
+ </refsect1>
+
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-parent-document:("fcron-doc.sgml" "book" "chapter" "sect1" "refentry" "")
+End:
+-->
--- /dev/null
+<!--
+Fcron documentation
+Copyright 2000-2004 Thibault Godouet <fcron@free.fr>
+Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License,
+Version 1.1 or any later version published by the Free Software
+Foundation.
+A copy of the license is included in gfdl.sgml.
+-->
+
+<!-- $Id: fcrondyn.1.sgml,v 1.1 2006-02-05 19:26:03 thib Exp $ -->
+
+<refentry id="fcrondyn.1">
+ <refmeta>
+ <refentrytitle>fcrondyn</refentrytitle>
+ <manvolnum>1</manvolnum>
+ <refmiscinfo>Fcron &version; <![%devrelease; [
+(<emphasis>development</emphasis> release)]]></refmiscinfo>
+ <refmiscinfo>&date;</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>fcrondyn</refname>
+ <refpurpose>Dialoguer dynamiquement avec un démon fcron en cours d'exécution.</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv id="fcrondyn.1.synopsis">
+ <cmdsynopsis>
+ <command>fcrondyn</command>
+ <arg>-c <replaceable>fichier</replaceable></arg>
+ <arg>-i</arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>fcrondyn</command>
+ <arg>-c <replaceable>fichier</replaceable></arg>
+ <arg choice="plain">-x <replaceable>commande</replaceable></arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>fcrondyn</command>
+ <arg>-h</arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>&Fcrondyn; est un outil utilisateur conçu pour interagir avec un
+ démon fcron en cours d'exécution. Il peut, par exemple, afficher les
+ tâches utilisateur chargées par &fcron;, lancer l'une d'elles, modifier
+ la « gentillesse » (Ndt : nice) d'une tâche en cours
+ d'exécution, envoyer un signal à une tâche, etc.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+ <variablelist>
+ <varlistentry>
+ <term><option>-i</option></term>
+ <listitem>
+ <para>Lancer &fcrondyn; en mode interactif. &fcrondyn; est également
+ lancée en mode interactif lorsqu'aucune option n'est fournie.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-x </option><replaceable>commande</replaceable></term>
+ <listitem>
+ <para>Lancer la <replaceable>commande</replaceable> et revenir
+ immédiatemment. <link linkend="fcrondyn.1.cmd.descp">Voir plus
+ loin</link> pour la syntaxe et la liste des commandes.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-c</option> <replaceable>fichier</replaceable></term>
+ <listitem>
+ <para>Forcer &fcrondyn; à utiliser le fichier de configuration
+ <replaceable>fichier</replaceable> à la place du fichier de
+ configuration par défaut
+ <filename>&etc;/&fcron.conf.location;</filename>. Pour interagir
+ avec un processus &fcron; existant, &fcrondyn; doit utiliser le
+ même fichier de configuration que le processus. De cette manière,
+ plusieurs processus &fcron; peuvent être exécutés simultanément
+ sur un même système.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-d</option></term>
+ <listitem>
+ <para>Démarrer en mode débogage. Dans ce mode, beaucoup de messages
+ d'informations seront produits en sortie afin de vérifier que
+ tout se passe bien.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-h</option></term>
+ <listitem>
+ <para>Afficher une brève description des options.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-V</option></term>
+ <listitem>
+ <para>Afficher un message d'information à propos de &fcrondyn;
+ qui inclut sa version et la licence sous laquelle il est
+ distribué.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="fcrondyn.1.cmd.descp">
+ <title>Description de la commande</title>
+ <para>La syntaxe de la commande &fcrondyn; est la suivante :</para>
+ <blockquote>
+ <para><command>commande</command> <replaceable>arg1</replaceable>
+ <replaceable>arg2</replaceable> [...]
+ </para>
+ </blockquote>
+ <para>Un argument de la commande &fcrondyn; est d'un des types
+ suivants :
+ </para>
+ <variablelist>
+ <title>Types d'argument des commandes &fcrondyn;</title>
+ <varlistentry>
+ <term><emphasis><type>utilisateur</type></emphasis></term>
+ <listitem>
+ <para>Un nom valide d'utilisateur.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis><type>jobid</type></emphasis></term>
+ <listitem>
+ <para>Un identifiant de tâche fourni par une des commandes
+ <command>ls*</command> de &fcrondyn; (c.-à-d. un entier).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis><type>sig</type></emphasis></term>
+ <listitem>
+ <para>Un numéro de signal, ou son nom. Par exemple,
+ « term » ou « 15 ».
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis><type>gentillesse</type></emphasis></term>
+ <listitem>
+ <para>Une valeur de priorité de tâche. Une
+ <emphasis><type>gentillesse</type></emphasis> est un entier compris
+ entre -20 (plus forte priorité) et 19 (plus faible priorité).
+ Seul le super-utilisateur peut utiliser une valeur négative pour
+ cette option.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>Enfin et surtout, les commandes suivantes sont reconnues (les
+ arguments optionnels sont entre []) :</para>
+ <variablelist>
+ <title>Commandes &fcrondyn; valides</title>
+ <varlistentry>
+ <term><command>help</command></term>
+ <term><command>h</command></term>
+ <listitem>
+ <para>Afficher un message d'aide sur les commandes fcrondyn.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><command>quit</command></term>
+ <term><command>q</command></term>
+ <listitem>
+ <para>En mode interactif, quitter fcrondyn.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><command>ls</command>
+[<emphasis><type>utilisateur</type></emphasis>]</term>
+ <listitem>
+ <para>Afficher toutes les tâches de l'utilisateur. Lorsque
+ <command>ls</command> est lancée par le super-utilisateur, tous
+ les utilisateurs sont affichés à moins qu'un utilisateur n'ait été
+ fourni en argument. <link
+ linkend="fcrondyn.1.ls.fields">Voir plus loin</link> pour plus
+ d'explications à propos des champs utilisés par les commandes
+ <command>ls*</command>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><command>ls_lavgq</command>
+[<emphasis><type>utilisateur</type></emphasis>]</term>
+ <listitem>
+ <para>Identique à <command>ls</command>, mais afficher seulement
+ les tâches qui sont dans la file d'attente« charge
+ système » (Ndt : load-average queue) (c.-à-d. celles qui
+ attendent une charge système plus faible pour pouvoir être
+ lancées).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><command>ls_serialq</command>
+[<emphasis><type>utilisateur</type></emphasis>]</term>
+ <listitem>
+ <para>Identique à <command>ls</command>, mais afficher seulement
+ les tâches qui sont dans la file d'attente sérialisée (Ndt :
+ serial queue) (c.-à-d. celles qui attendent que d'autres tâches
+ soient achevées).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><command>ls_exeq</command>
+[<emphasis><type>utilisateur</type></emphasis>]</term>
+ <listitem>
+ <para>Identique à <command>ls</command>, mais afficher seulement
+ les tâches en cours d'exécution.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><command>detail</command>
+ <emphasis><type>jobid</type></emphasis></term>
+ <listitem>
+ <para>Afficher les détails d'une tâche.
+ <emphasis><type>jobid</type></emphasis> est la valeur fournie par
+ <command>ls</command>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><command>runnow</command>
+ <emphasis><type>jobid</type></emphasis></term>
+ <listitem>
+ <para>Plutôt que d'attendre la date et heure de la prochaine
+ exécution planifiée, lancer la tâche maintenant. La date et heure
+ de la prochaine exécution sont modifiées comme si la tâche avait
+ été lancée par l'ordonnanceur.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><command>run</command>
+<emphasis><type>jobid</type></emphasis></term>
+ <listitem>
+ <para>Lancer la tâche maintenant. Ses date et heure de prochaine
+ exécution ne sont pas modifiées.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><command>kill</command>
+ <emphasis><type>sig</type></emphasis>
+ <emphasis><type>jobid</type></emphasis></term>
+ <listitem>
+ <para>Envoyer un signal à une tâche en cours d'exécution.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><command>renice</command>
+<emphasis><type>gentillesse</type></emphasis>
+<emphasis><type>jobid</type></emphasis></term>
+ <listitem>
+ <para>Modifier la priorité d'une tâche en cours d'exécution.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <variablelist id="fcrondyn.1.ls.fields">
+ <title>Champs utilisés par les commandes <command>detail</command>
+ et <command>ls*</command></title>
+ <varlistentry>
+ <term>ID</term>
+ <listitem>
+ <para>Numéro d'identification unique de la tâche.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>USER</term>
+ <listitem>
+ <para>Utilisateur auquel appartient la tâche.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>PID</term>
+ <listitem>
+ <para>Le pid de la tâche en cours d'exécution.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>INDEX</term>
+ <listitem>
+ <para>Index de la tâche dans la file d'attente séquentielle (c.-à-d.
+ qu'elle sera lancée lorsque toutes les tâches dont l'index a une
+ valeur plus petite auront été lancées).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>R&Q</term>
+ <listitem>
+ <para>Indique le nombre d'instances de la tâche en cours ou en
+ attente d'exécution dans la file d'attente « série »
+ (Ndt :serial queue) ou dans la file d'attente « charge
+ système » (Ndt :lavg queue).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>OPTIONS</term>
+ <listitem>
+ <para>Indique les principales options positionnées de la tâche.
+ L pour les tâches ne s'exécutant qu'en dessous d'une charge système
+ donnée (Ndt : L pour Load average), LO si une seule instance
+ de la tâche peut se trouver dans dans la file d'attente
+ « charge système » (Ndt : LO pour Lavg Once), S pour
+ les tâches s'exécutant séquentiellement (Ndt :S pour Serial),
+ SO pour les tâches qui ne seront exécutées séquentiellement que
+ pour leur prochaine exécution (Ndt : SO pour Serial Once), et
+ ES pour les tâches dont plusieurs instances peuvent s'exécuter
+ simultanément (Ndt : ES pour « allow the Execution of
+ Several instances »).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>LAVG</term>
+ <listitem>
+ <para>Trois valeurs correspondant à la charge système moyennée sur
+ 1, 5 et 15 minutes (dans cet ordre) en dessous de laquelle la
+ tâche sera exécutée, sinon elle sera placée en attente d'une
+ charge système adéquate (voir l'option &optlavg;).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>UNTIL</term>
+ <listitem>
+ <para>Champ correspondant à l'option &optuntil;.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>STRICT</term>
+ <listitem>
+ <para>Champ correspondant à l'option &optstrict;. Y pour yes,
+ N pour non.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>SCHEDULE</term>
+ <listitem>
+ <para>Indique la date et l'heure prévues de la prochaine exécution
+ de la tâche. Veuillez noter que l'heure indiquée est celle du
+ système sur lequel tourne &fcron;, et non celle du fuseau horaire
+ que l'utilisateur peut éventuellement définir avec l'option
+ &opttimezone; de &fcrontab;).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>CMD</term>
+ <listitem>
+ <para>La commande à exécuter.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>Valeurs renvoyÉes</title>
+ <para>&Fcrondyn; renvoie &exitok; lorsqu'il quitte normalement, et
+ &exiterr; en cas d'erreur.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>ConformitÉ</title>
+ <para>Devrait être conforme aux spécifications POSIX.</para>
+ </refsect1>
+
+ <refsect1 id="fcrondyn.1.files">
+ <title>Fichiers</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>&etc;/&fcron.conf.location;</filename></term>
+ <listitem>
+ <para>Fichier de configuration de &fcron;, &fcrontab et &fcrondyn; :
+ contient les chemins (répertoire spool, fichier pid) et les
+ programmes par défaut à utiliser (éditeur, shell, etc.). Voir
+ <link linkend="fcron.conf.5">&fcron.conf(5)</link> pour plus de
+ détails.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>&etc;/&fcron.allow;</filename></term>
+ <listitem>
+ <para>Utilisateurs autorisés à utiliser &fcrontab; et &fcrondyn;
+ (un seul nom par ligne, le nom spécial « all »
+ signifiant tout le monde).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>&etc;/&fcron.deny;</filename></term>
+ <listitem>
+ <para>Utilisateurs qui ne sont pas autorisés à utiliser &fcrontab;
+ et &fcrondyn; (même format que le fichier précédent).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>&etc;/pam.d/fcron</filename> (ou
+ <filename>&etc;/pam.conf</filename>)
+ </term>
+ <listitem>
+ <para>Fichier de configuration <productname>PAM</productname> pour
+ &fcron;. Voir &pam;(8) pour plus de détails.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ &manpage-foot;
+
+ <refsect1>
+ <title>Traduction</title>
+ <para>Ce document est une traduction réalisée par Alain Portal
+ <aportal AT univ-montp2 DOT fr>. le xx novembre 2005
+ </para>
+ <para>L'équipe de traduction a fait le maximum pour réaliser une adaptation
+ française de qualité. La version anglaise la plus à jour de ce document
+ est toujours consultable via la commande : « <emphasis>LANG=en
+ man 1 fcrondyn</emphasis> ».
+ N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas,
+ toute erreur dans cette page de manuel.
+ </para>
+ </refsect1>
+
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-parent-document:("fcron-doc.sgml" "book" "chapter" "sect1" "")
+End:
+-->
+
--- /dev/null
+<!--
+Fcron documentation
+Copyright 2000-2004 Thibault Godouet <fcron@free.fr>
+Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License,
+Version 1.1 or any later version published by the Free Software
+Foundation.
+A copy of the license is included in gfdl.sgml.
+-->
+
+<!-- $Id: fcrontab.1.sgml,v 1.1 2006-02-05 19:26:19 thib Exp $ -->
+
+ <refentry id="fcrontab.1">
+ <refmeta>
+ <refentrytitle>fcrontab</refentrytitle> <manvolnum>1</manvolnum>
+ <refmiscinfo>Fcron &version; <![%devrelease; [
+ (<emphasis>development</emphasis> release)]]></refmiscinfo>
+ <refmiscinfo>&date;</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>fcrontab</refname>
+ <refpurpose>Manipuler les fichiers fcrontab utilisateur</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv id="fcrontab.1.synopsis">
+ <cmdsynopsis>
+ <command>fcrontab</command>
+ <arg>-c <replaceable>fichier</replaceable></arg>
+ <arg>-n</arg> <arg choice="plain"><replaceable>fichier</replaceable></arg>
+ <group>
+ <arg><replaceable>utilisateur</replaceable></arg>
+ <arg>-u <replaceable>utilisateur</replaceable></arg>
+ </group>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>fcrontab</command>
+ <arg>-c <replaceable>fichier</replaceable></arg>
+ <arg>-n</arg>
+ <group choice="req">
+ <arg>-l</arg> <arg>-r</arg> <arg>-e</arg> <arg>-z</arg>
+ </group>
+ <group>
+ <arg><replaceable>utilisateur</replaceable></arg>
+ <arg>-u <replaceable>utilisateur</replaceable></arg>
+ </group>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>fcrontab</command> <arg>-h</arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>&Fcrontab; est le programme conçu pour installer, éditer, afficher
+ et supprimer les tables utilisées par le démon <link
+ linkend="fcron.8">&fcron;(8)</link>. Comme &fcron; utilise un format
+ non humainement lisible (ceci est nécessaire car &fcron; enregistre
+ beaucoup d'informations fournies par l'utilisateur, par exemple la
+ date et l'heure de la prochaine exécution), l'utilisateur ne peut pas
+ éditer directement son fichier &fcrontabf; (celui utilisé par &fcron;).
+ </para>
+ <para>Lorsqu'un utilisateur installe un &fcrontabf;, le fichier source
+ est enregistré dans le répertoire de travail (Ndt : spool
+ directory) (<filename>&fcrontabsdir;</filename>)
+ pour permettre des éditions ultérieures, un fichier formaté est généré
+ par le démon &fcron;, qui est averti dix secondes avant la minute
+ suivante de toutes les modifications effectuées précédemment. Le démon
+ &fcron; ne reçoit pas immédiatement le signal lui annonçant qu'un
+ fichier &fcrontab; a été modifié, mais en reçoit au plus un par minute,
+ de façon à éviter que des utilisateurs mal intentionnés ne gènent le
+ fonctionnement de &fcron; en faisant des modifications incessantes
+ d'un fichier &fcrontab; (c.-à-d. attaque en déni de service).
+ Nous appellerons, dans la suite du document,
+ « <emphasis>fcrontab</emphasis> » le fichier source des
+ tables &fcrontabf;.</para>
+ <para>Un utilisateur peut installer un &fcrontabf; si son nom est
+ enregistré dans le fichier <filename>&etc;/&fcron.allow;</filename> et
+ pas dans le fichier <filename>&etc;/&fcron.deny;</filename> (à moins
+ qu'il n'y ait le mot clé « all »). Voir la section
+ « <link linkend="fcrontab.1.files">FICHIERS</link> » plus
+ loin. Si aucun des fichiers <filename>fcron.allow</filename> ou
+ <filename>fcron.deny</filename> n'existe, tous les utilisateurs sont
+ autorisés. Il n'est pas nécessaire que ces deux fichiers existent,
+ mais s'ils existent, le fichier <filename>fcron.deny</filename> est
+ prioritaire.
+ </para>
+ <para>La première forme de la commande est utilisée pour installer un
+ nouveau fichier &fcrontabf;, à partir d'un nom de fichier ou de
+ l'entrée standard si le pseudo nom de fichier « - » est
+ fourni sur la ligne de commande, remplaçant le fichier précédent (s'il
+ existait) : chaque utilisateur ne peut avoir qu'un seul fichier
+ &fcrontabf;.
+ </para>
+ <para>Par exemple, le super-utilisateur peut créer un fichier fcrontab
+ pour le système, disons <filename>/etc/fcrontab</filename>, et lancer
+ « <command>fcrontab</command> <filename>/etc/fcrontab</filename> »
+ pour installer la nouvelle version après chaque modification du
+ fichier. Ou bien, il peut créer un nouveau fichier fcrontab en lançant
+ simplement « <command>fcrontab</command> », et le maintenir
+ par la suite en lançant « <command>fcrontab</command>
+ <option>-e</option> ». Les mêmes considérations s'appliquent à un
+ utilisateur normal.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+ <variablelist>
+ <varlistentry>
+ <term><option>-u</option> <replaceable>utilisateur</replaceable></term>
+ <listitem>
+ <para>Spécifier l'utilisateur dont le &fcrontabf; sera géré, ou
+ « &sysfcrontab; » pour le fcrontab système. Ne peut
+ être utilisée que par le super-utilisateur. S'il n'est pas
+ fourni, le fichier &fcrontabf; de l'utilisateur qui a invoqué
+ &fcrontab; sera traité. Cela peut être pratique puisque la
+ commande <application>su</application>(8) peut tromper &fcrontab;.
+ <note>
+ <para>l'« <replaceable>utilisateur</replaceable> »
+ dans le <link linkend="fcrontab.1.synopsis">synopsys</link>
+ est équivalent à « <option>-u</option>
+ <replaceable>utilisateur</replaceable> ».
+ </para>
+ </note>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-l</option></term>
+ <listitem>
+ <para>Afficher sur la sortie standard le &fcrontabf; actuel de
+ l'utilisateur.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-e</option></term>
+ <listitem>
+ <para>Éditer le &fcrontabf; actuel de l'utilisateur en utilisant
+ l'éditeur spécifié soit par la variable d'environnement
+ <envar>VISUAL</envar>, soit par la variable d'environnement
+ <envar>EDITOR</envar> si <envar>VISUAL</envar> n'est pas
+ positionnée. Si aucune des deux n'est positionnée,
+ <command>&editor;</command> sera utilisée.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-r</option></term>
+ <listitem>
+ <para>Effacer le &fcrontabf; de l'utilisateur.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-z</option></term>
+ <listitem>
+ <para>Réinstaller le &fcrontabf; de l'utilisateur à partir de son
+ code source. Toutes les informations que &fcron; aurait pu
+ conserver dans le &fcrontabf; binaire (comme l'heure et la date
+ de la prochaine exécution) seront perdues.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-n</option></term>
+ <listitem>
+ <para>Ignorer la version précédente. Si cette option n'est pas
+ fournie, &fcron; essayera de conserver le plus d'informations
+ possibles entre l'ancienne et la nouvelle version du &fcrontabf;
+ (date et heure de la prochaine exécution, la tâche est-elle dans
+ une file série, etc.) si la ligne n'a pas été modifiée (mêmes
+ champs, même commande shell).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-c</option> <replaceable>fichier</replaceable></term>
+ <listitem>
+ <para>Forcer &fcrontab; à utiliser le fichier de configuration
+ <replaceable>fichier</replaceable> à la place du fichier de
+ configuration par défaut
+ <filename>&etc;/&fcron.conf.location;</filename>. Pour interagir
+ avec un processus &fcron; existant, &fcrontab; doit utiliser le
+ même fichier de configuration que le processus. De cette manière,
+ plusieurs processus &fcron; peuvent être exécutés simultanément
+ sur un même système.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-d</option></term>
+ <listitem>
+ <para>Démarrer en mode débogage. Dans ce mode, beaucoup de messages
+ d'informations seront produits en sortie afin de vérifier que
+ tout se passe bien.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-h</option></term>
+ <listitem>
+ <para>Afficher une brève description des options.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-V</option></term>
+ <listitem>
+ <para>Afficher un message d'information à propos de &fcrontab;.
+ Cela inclut sa version et la licence sous laquelle il est
+ distribué.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>Valeurs renvoyÉes</title>
+ <para>&Fcrontab; renvoie &exitok; lorsqu'il quitte normalement, et
+ &exiterr; en cas d'erreur.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>ConformitÉ</title>
+ <para>Devrait être conforme aux spécifications POSIX.</para>
+ </refsect1>
+
+ <refsect1 id="fcrontab.1.files">
+ <title>Fichiers</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>&etc;/&fcron.conf.location;</filename></term>
+ <listitem>
+ <para>Fichier de configuration de &fcron;, &fcrontab et &fcrondyn; :
+ contient les chemins (répertoire spool, fichier pid) et les
+ programmes par défaut à utiliser (éditeur, shell, etc.). Voir
+ <link linkend="fcron.conf.5">&fcron.conf(5)</link> pour plus de
+ détails.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>&etc;/&fcron.allow;</filename></term>
+ <listitem>
+ <para>Utilisateurs autorisés à utiliser &fcrontab; et &fcrondyn;
+ (un seul nom par ligne, le nom spécial « all »
+ signifiant tout le monde).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>&etc;/&fcron.deny;</filename></term>
+ <listitem>
+ <para>Utilisateurs autorisés à utiliser &fcrontab; et &fcrondyn;
+ (un seul nom par ligne, le nom spécial « all »
+ signifiant tout le monde).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>&etc;/pam.d/fcron</filename> (or
+ <filename>&etc;/pam.conf</filename>)</term>
+ <listitem>
+ <para>Fichier de configuration <productname>PAM</productname> pour
+ &fcron;. Voir &pam;(8) pour plus de détails.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ &manpage-foot;
+
+ <refsect1>
+ <title>Traduction</title>
+ <para>Ce document est une traduction réalisée par Alain Portal
+ <aportal AT univ-montp2 DOT fr>. le xx novembre 2005
+ </para>
+ <para>L'équipe de traduction a fait le maximum pour réaliser une adaptation
+ française de qualité. La version anglaise la plus à jour de ce document
+ est toujours consultable via la commande : « <emphasis>LANG=en
+ man 1 fcrontab</emphasis> ».
+ N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas,
+ toute erreur dans cette page de manuel.
+ </para>
+ </refsect1>
+
+ </refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-parent-document:("fcron-doc.sgml" "book" "chapter" "sect1" "")
+End:
+-->
--- /dev/null
+<!--
+Fcron documentation
+Copyright 2000-2004 Thibault Godouet <fcron@free.fr>
+Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License,
+Version 1.1 or any later version published by the Free Software
+Foundation.
+A copy of the license is included in gfdl.sgml.
+-->
+
+<!-- $Id: fcrontab.5.sgml,v 1.1 2006-02-05 19:26:31 thib Exp $ -->
+
+<refentry id="fcrontab.5">
+ <refmeta>
+ <refentrytitle>fcrontab</refentrytitle>
+ <manvolnum>5</manvolnum>
+ <refmiscinfo>Fcron &version; <![%devrelease; [
+(<emphasis>development</emphasis> release)]]></refmiscinfo>
+<refmiscinfo>&date;</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>fcrontab</refname>
+ <refpurpose>Tables de configuration de fcron</refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>Un fichier &fcrontabf; est un fichier qui contient toutes les tables
+ utilisées par le démon &fcron;(8). Cela permet à un utilisateur de dire
+ au démon : « Exécute cette tâche à tel moment ». Chaque
+ utilisateur a sa propre table &fcrontabf;, et les commandes contenues
+ dans une table seront exécutées sous l'identifiant du propriétaire de la
+ table. Seul le super-utilisateur peut lancer une tâche avec les droits
+ d'un autre utilisateur en utilisant l'option &optrunas; (voir plus loin).
+ </para>
+ <para>Les lignes blanches, les lignes débutant par le symbole dièse
+ « # » (qui sont considérées comme étant des commentaires),
+ les espaces ou les tabulations placées en début de ligne sont ignorées.
+ Chaque ligne d'un fichier &fcrontabf; peut être soit :
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>une configuration d'environnement,</para>
+ </listitem>
+ <listitem>
+ <para>une configuration d'option,</para>
+ </listitem>
+ <listitem>
+ <para>des entrées basées sur la durée totale de fonctionnement du
+ système depuis la dernière exécution de la tâche,</para>
+ </listitem>
+ <listitem>
+ <para>des entrées basées sur un temps absolu (comme les entrées
+ normales de crontab), ou</para>
+ </listitem>
+ <listitem>
+ <para>des entrées lancées périodiquement.</para>
+ </listitem>
+ </itemizedlist>
+ <para>Toute ligne logique (une entrée ou une affectation) peut être scindée
+ en plusieurs lignes effectives (des lignes finissant par un caractère
+ fin de ligne) en plaçant une barre oblique inverse « \ » avant
+ le caractère fin de ligne « \n ».
+ </para>
+
+ <refsect2>
+ <title>La configuration de l'environnement</title>
+ <para>La configuration de l'environnement est de la forme</para>
+ <blockquote>
+ <para>nom = valeur</para>
+ </blockquote>
+ <para> où les espaces autour du signe d'égalité « = » sont
+ ignorées et optionnelles. Les espaces en fin de ligne sont également
+ ignorées, mais vous pouvez placer la valeur entre guillemets (simple
+ ou double, mais appareillés) pour préserver les caractères blancs dans
+ la valeur.
+ </para>
+ <para>Lorsque &fcron; exécute une commande, il positionne toujours les
+ variables d'environnement
+ <envar>USER</envar>, <envar>HOME</envar>, et <envar>SHELL</envar>
+ comme elles sont définies dans <filename>/etc/passwd</filename> pour
+ le propriétaire de la table &fcrontabf; dont la commande est issue.
+ Les variables d'environnement <envar>HOME</envar> et
+ <envar>SHELL</envar> peuvent être écrasées par la configuration
+ contenue dans le fichier &fcrontabf;, mais <envar>USER</envar> ne
+ peut pas l'être. Toute autre affectation d'environnement définie dans
+ le &fcrontabf; de l'utilisateur est effectuée et la commande exécutée.
+ </para>
+ <para>De plus, la variable spéciale <varname>MAILTO</varname> vous permet
+ d'indiquer à &fcron; à qui envoyer par courriel la sortie de la
+ commande. Veuillez noter que <varname>MAILTO</varname> est en fait
+ équivalente à la déclaration globale de l'option &optmailto; (voir
+ plus loin). Elle n'est utilisée que pour assurer une
+ rétrocompatibilité, aussi, vous devriez plutôt utiliser directement
+ l'option &optmailto;.
+ </para>
+ </refsect2>
+
+ <refsect2 id="uptent">
+ <title>EntrÉes basÉes sur le temps ÉcoulÉ depuis le démarrage du systÉme
+ </title>
+ <para>Les entrées des commandes qui doivent être exécutées une fois
+ toutes les m minutes de l'exécution de &fcron; (qui sont normalement
+ les mêmes m minutes de l'exécution du système) sont de la forme
+ </para>
+ <programlisting>@options fréquence commande</programlisting>
+ <para>où fréquence est une valeur de temps de la forme
+ valeur*multiplicateur+valeur*multiplicateur+...+valeur-en-minutes
+ comme "12h02" ou "3w2d5h1". La première signifie "12 heures et 2
+ minutes d'exécution de fcron" tant dis que la seconde signifie
+ "3 semaines, 2 jours, 5 heures et 1 minute d'exécution de fcron". Les
+ multiplicateurs valides sont :
+ </para>
+ <table>
+ <title>Multiplicateurs de temps valides</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>signification : </entry>
+ <entry>multiplicateurs : </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>mois (4 semaines) : </entry>
+ <entry>m </entry>
+ </row>
+ <row>
+ <entry>semaines (7 jours) : </entry>
+ <entry>w </entry>
+ </row>
+ <row>
+ <entry>jours (24 heures) : </entry>
+ <entry>d </entry>
+ </row>
+ <row>
+ <entry>heures (60 minutes) : </entry>
+ <entry>h </entry>
+ </row>
+ <row>
+ <entry>secondes : </entry>
+ <entry>s </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>À la place de <replaceable>options</replaceable>, l'utilisateur
+ peut mettre une valeur de temps qui sera interprétée comme
+ <token>@first(<replaceable>temps</replaceable>)</token>. Si l'option
+ &optfirst; n'est pas positionnée, la valeur de
+ « <varname>fréquence</varname> » est utilisée.
+ </para>
+ <para>Ce type d'entrée ne garantie pas une date et heure d'exécution (vu
+ que la tâche est retardée à chaque démarrage du système par le temps
+ écoulé depuis l'arrêt du système), mais peut être pratique pour des
+ tâches dépendant du nombre de choses faites par les utilisateurs (par
+ exemple, il vaudrait mieux vérifier le système de fichiers après un
+ certain nombre d'utilisation par les utilisateurs plutôt que tous les
+ x jours, vu que le système peut être lancé de 1 jour à x jours pendant
+ cet intervalle de x jours).
+ </para>
+ <para>Le temps restant avant la prochaine exécution est sauvegardé
+ toutes les &save; secondes (afin de limiter les dommages provoqués
+ par un plantage) et lorsque &fcron; quitte après avoir reçu un signal
+ <constant>SIGTERM</constant>, c.-à-d. lorsque l'on arrête le système.
+ Ainsi, ce type d'entrée est particulièrement utile pour des systèmes
+ qui ne tournent pas de manière régulière. La syntaxe étant très simple,
+ il est également pratique pour des tâches qui n'ont pas besoin d'être
+ exécutées à une date et une heure spécifique.
+ </para>
+ <para>&voiraussi; les options &optfirst;, &optmail;, &optnolog;,
+ &optserial;, &optlavg;, &optnice;, &optrunas; (voir plus loin).
+ </para>
+ <para><example>
+ <title>Quelques exemples de lignes basÉes sur le temps écoulÉ depuis
+le dÉmarrage du systÈme</title>
+ <programlisting>
+# Récupérer vos courriels toutes les 30 minutes
+@ 30 getmails -all
+
+# Effectuer quelques tests de sécurité toutes les 48 heures de fonctionnement
+# du système, envoyer un courriel au super-utilisateur même s'il n'a pas de sortie
+@mailto(root),forcemail 2d /etc/security/msec/cron-sh/security.sh
+</programlisting>
+ </example></para>
+ </refsect2>
+
+ <refsect2 id="fcrontab.5.tadent">
+ <title>EntrÉes basÉes sur une date et une heure</title>
+ <para>Le deuxième type d'entrée d'un fichier &fcrontabf; commence par un
+ caractère « & » optionnel qui peut être immédiatement suivi
+ par un nombre optionnel définissant la fréquence d'exécution (ceci est
+ équivalent à l'option &optrunfreq;) ou par une déclaration
+ d'options ; il possède cinq champs de date et d'heure, ainsi
+ qu'une commande shell :
+ </para>
+ <programlisting>
+&options min hrs jour-du-mois mois jour-de-la-semaine commande
+</programlisting>
+ <para>Veuillez noter que la commande shell peut être précédée par un nom
+ d'utilisateur, ce qui est équivalent à <token>runas
+ (<replaceable>user</replaceable>)</token> : vu que cela n'existe
+ que pour une retrocompatibilité, vous devriez plutôt utiliser l'option
+ &optrunas; (voir plus loin). La fréquence est interprétée de la façon
+ suivante : « lancer cette commande après x correspondances des
+ champs date et heure ». Les champs date et heure sont :
+ </para>
+ <table>
+ <title>Champs date et heure</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>champ : </entry>
+ <entry>valeurs permises : </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>minute : </entry>
+ <entry>0-59 </entry>
+ </row>
+ <row>
+ <entry>heure : </entry>
+ <entry>0-23 </entry>
+ </row>
+ <row>
+ <entry>jour du mois : </entry>
+ <entry>1-31 </entry>
+ </row>
+ <row>
+ <entry>mois : </entry>
+ <entry>1-12 (ou leurs noms, voir plus loin) </entry>
+ </row>
+ <row>
+ <entry>jour de la semaine : </entry>
+ <entry>0-7 (0 et 7 signifient tous deux le dimanche, ou leurs noms)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <para>Un champ est toujours renseigné soit par une astérique
+ « * », qui signifie un intervalle comme
+ « <token>premier-dernier</token>, soit un nombre seul, soit une
+ liste.
+ </para>
+ <para>Les listes sont des nombres ou des intervalles séparés par des
+ virgules « , »). Par exemple : « 2,5,15,23 ».
+ </para>
+ <para>Les intervalles de nombres sont de la forme
+ « <token><replaceable>début</replaceable>-<replaceable>fin</replaceable></token> »,
+ où « <replaceable>début</replaceable> » et
+ « <replaceable>fin</replaceable> » sont inclus. Par exemple,
+ « 3-5 » signifie les valeurs 3, 4 et 5. Vous pouvez également
+ ajouter un « /<replaceable>nombre</replaceable> » optionnel
+ à l'intervalle, où le <replaceable>nombre</replaceable> signifie le
+ pas dans l'intervalle. Par exemple, « 0-23/2 » peut être
+ utilisé dans le champ heure pour spécifier l'exécution d'une commande
+ toutes les heures paires. Enfin, un ou plusieurs
+ « ~<replaceable>nombre</replaceable> » peuvent être ajoutés
+ afin de désactiver certaines valeurs dans l'intervalle. Par exemple,
+ « 5-8~6~7 » est équivalent à « 5,8 ». La forme
+ finale d'un champ est :
+ </para>
+ <blockquote>
+ <para>a[-b[/c][~d][~e][...]][,f[-g[/h][~i][~j][...]]][,...]</para>
+ </blockquote>
+ <para>où les lettres sont des nombres entiers.</para>
+ <para>Vous pouvez également utiliser unE astérisque « * » dans
+ un champ. Il agira comme « <token>premier-dernier</token> ».
+ Par exemple, un « * » dans le champ minute signifie toutes
+ les minutes de la minute 0 à la minute 59.
+ </para>
+ <para>Des intervalles peuvent être inclus dans une liste comme un simple
+ nombre. Par exemple : « 2,5-10/2~6,15,20-25,30 ».
+ </para>
+ <para>Les noms (Ndt : en anglais) peuvent être utilisés pour les
+ champs « mois » et « jour de la semaine ». Pour ce
+ faire, utilisez les trois premières lettres du jour ou du mois
+ concerné (la casse n'a pas d'importance). Veuillez noter que les noms
+ sont utilisés exactement comme les nombres : vous pouvez les
+ utiliser dans une liste ou un intervalle.
+ </para>
+ <para>Si un jour de mois et un jour de semaine sont donnés, la commande
+ sera exécutée seulement si <emphasis>les deux</emphasis> correspondent
+ au jour et à l'heure actuels à moins que l'option &optdayor; n'ait été
+ positionnée. Par exemple, avec la ligne
+ <programlisting>5 10 31 * 7 echo ''</programlisting> echo sera exécutée
+ seulement les jours qui sont un dimanche ET le 31ème jour du mois,
+ à 10:05.
+ </para>
+ <para>&voiraussi; options &optdayor;, &optbootrun;, &optrunfreq;,
+ &optmail;, &optnolog;, &optserial;, &optlavg;, &optnice;, &optrunas;
+ (voir plus loin).
+ </para>
+ <para><example>
+ <title>Quelques exemples d'entrÉes basÉes sur une date et une heure
+ </title>
+ <programlisting>
+# lancer macommande tous les jours à 12:05, 12:35, 13:05, 13:35,
+# 14:05 *et* 14:35
+& 05,35 12-14 * * * macommande -u moi -o fichier
+
+# récupérer les courriels toutes les heures aux minutes 20, 21, 22, et 24.
+20-24~23 * * * * getmail
+
+# sauvegarder mon travail de la journée toutes les nuits à 03:45 avec une
+# faible priorité, sauf le dimanche, envoyer la sortie par courriel à jim et
+# lancer cette tâche au démarrage si la machine était éteinte à 03:45
+&nice(10),mailto(jim),bootrun 45 03 * * *~0 "save --mon travail"
+</programlisting>
+ </example></para>
+ </refsect2>
+
+ <refsect2 id="fcrontab.5.periodent">
+ <title>EntrÉes lancÉes pÉriodiquement</title>
+ <para>Le troisième type d'entrée &fcrontabf; commence par le caractère
+ « % », suivi par un mot-clef pris parmi une des trois
+ différentes listes, puis par des options.
+ </para>
+ <refsect3>
+ <title>Mots-clefs *ly</title>
+ <para>Ces mots-clefs sont :</para>
+ <para><simplelist type="inline">
+ <member><parameter>hourly </parameter></member>
+ <member><parameter>daily </parameter></member>
+ <member><parameter>monthly </parameter></member>
+ <member><parameter>weekly </parameter></member>
+ </simplelist></para>
+ <para>Ces mots-clefs indiquent à &fcron; de lancer la commande une fois
+ entre le début et la fin de l'intervalle de temps correspondant.
+ Un intervalle de temps est, par exemple, le temps compris entre lundi
+ 16:20 et mercredi 01:43. Par exemple, le mot-clef
+ <parameter>weekly</parameter> indique à &fcron; de lancer une
+ commande une fois par semaine entre le lundi et le dimanche.
+ </para>
+ <para>Avec ces deux sortes de mots-clefs, l'utilisateur doit renseigner
+ les champs heure nécessaires (comme ils sont définis dans
+ « <link linkend="fcrontab.5.tadent">Entrées basées sur une date
+ et une heure</link> » (voir plus haut)) pour préciser quand la
+ commande devrait être lancée dans chaque intervalle de temps :
+ </para>
+ <para>
+ <table>
+ <title>Champs de temps nÉcessaires À chaque mot-clef</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Mots-clefs : </entry>
+ <entry>doit être suivi par les champs : </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><parameter> hourly</parameter>,
+ <parameter>midhourly</parameter> : </entry>
+ <entry> minutes.</entry>
+ </row>
+ <row>
+ <entry><parameter> daily</parameter>,
+<parameter>middaily</parameter>, <parameter>nightly</parameter>,
+<parameter>weekly</parameter>, <parameter>midweekly</parameter> : </entry>
+ <entry> minutes et heures.</entry>
+ </row>
+ <row>
+ <entry><parameter> monthly</parameter>,
+<parameter>midmonthly</parameter> : </entry>
+ <entry> minutes, heures et jours.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ </refsect3>
+
+ <refsect3>
+ <title>Mots-clefs mid*ly</title>
+ <para>Ils sont similaires aux mots-clefs « *ly » :</para>
+ <para>
+ <simplelist type="inline">
+ <member><parameter>midhourly </parameter></member>
+ <member><parameter>middaily </parameter></member>
+ <member><parameter>nightly </parameter></member>
+ <member><parameter>midmonthly </parameter></member>
+ <member><parameter>midweekly </parameter></member>
+ </simplelist>
+ </para>
+ <para>Ils fonctionnent exactement comme les mots-clefs
+ « *ly », excepté que les intervalles de temps sont définis
+ du milieu au milieu de l'intervalle « *ly »
+ correspondant : <parameter>midweekly</parameter> lancera une
+ commande une fois entre le jeudi et le mercredi. Veuillez noter que
+ <parameter>nightly</parameter> est équivalent à
+ <parameter>middaily</parameter>.
+ </para>
+ <para>Par exemple :
+ <informalexample>
+ <programlisting>
+%nightly,mail(no) * 21-23,3-5 echo "une entrée nigthly"
+</programlisting>
+ </informalexample>
+ </para>
+ <para>lancera la commande une fois par nuit soit entre 21:00 et 23:59,
+ soit entre 3:00 et 5:59 (elle sera exécutée aussitôt que
+ possible ; Pour modifier ce comportement, utilisez l'option
+ &optrandom;) et ne pas envoyer de courriel (étant donné que l'option
+ &optmail; a été définie à « no »).
+ </para>
+ <para>&voiraussi; options &optlavg;, &optnoticenotrun;, &optstrict;,
+ &optmail;, &optnolog;, &optserial;, &optnice;, &optrunas;,
+ &optrandom; (voir plus loin).
+ </para>
+ </refsect3>
+
+ <refsect3>
+ <title>Mots-clefs *s</title>
+ <para>Ce sont :</para>
+ <para><simplelist type="inline">
+ <member><parameter>mins </parameter></member>
+ <member><parameter>hours </parameter></member>
+ <member><parameter>days </parameter></member>
+ <member><parameter>mons </parameter></member>
+ <member><parameter>dow </parameter></member>
+ </simplelist></para>
+ <para>Ces mots-clefs agissent différemment, comme suit :
+ </para>
+ <para>lancer cette commande unE fois durant CHAQUE intervalle de temps
+ spécifié, ignorant les champs suivants le mot-clef dans la définition
+ de l'intervalle de temps (un <parameter>hours</parameter> empêche le
+ champ mins d'être considéré comme un intervalle de temps, mais il
+ sera utilisé pour déterminer quand la ligne devra être lancée au
+ cours de l'intervalle : voir la note plus loin)
+ (<parameter>dow</parameter> signifie « day of week »).
+ </para>
+ <para>Un tel mot-clef est suivi par 5 champs de date et d'heure (les
+ mêmes champs utilisés pour une <link linkend="fcrontab.5.tadent">ligne
+ basée sur un temps absolu</link> (voir plus haut). De plus, avec
+ cette sorte de mots-clefs, il doit y avoir sur les lignes des dates
+ et heures qui ne correspondent pas (c.-à-d. que ce qui suit n'est
+ pas permis :
+ <programlisting>%hours * 0-23 * * * echo "Ligne INCORRECTE !"</programlisting>
+ mais ceci l'est :
+ <programlisting>%hours * 0-22 * * * echo "Ok."</programlisting>
+ </para>
+ <note>
+ <para>un nombre seul dans un champ est considéré comme un intervalle
+ de temps :
+ <programlisting>%mins 15 2-4 * * * echo</programlisting> lancera
+ echo tous les jours à 2:15, 3:15 ET 4:15.
+ </para>
+ <para>Mais tous les champs suivants les mots-clefs sont ignorés dans
+ la définition d'un intervalle de temps :
+ <programlisting>%hours 15 2-4 * * * echo</programlisting> lancera
+ echo seulement UNE FOIS soit à 2:15, soit à 3:15 OU BIEN à 4:15.
+ </para>
+ </note>
+ <para>&voiraussi; option &optrandom; (voir plus loin).</para>
+ </refsect3>
+ </refsect2>
+
+ <refsect2>
+ <title>Options</title>
+ <para>Les options peuvent être positionnées soit pour chaque ligne située
+ après la déclaration, soit pour une ligne de manière individuelle. Dans
+ le premier cas, la configuration est faite sur une ligne complète après
+ un point d'exclamation « ! », dans le second cas, elle est
+ faite après l'un des symboles suivants « & », « % »
+ ou « @ », suivant le type de planification. Veuillez noter
+ qu'une déclaration d'option dans une planification écrase la
+ déclaration globale de la même option.
+ </para>
+ <para>Les options sont séparées par des virgules « , » et leurs
+ arguments, s'il y en a, sont placés entre paranthèses « ( »
+ et « ) ». Les espaces ne sont pas permises. Une déclaration
+ d'option est de la forme
+ </para>
+ <blockquote>
+ <para><replaceable>option</replaceable>[(<replaceable>arg1</replaceable>[,<replaceable>arg2</replaceable>][...])][,<replaceable>option</replaceable>[(<replaceable>arg1</replaceable>[...])]][...]</para>
+ </blockquote>
+ <para>où <replaceable>option</replaceable> est soit le nom complet de
+ l'option, soit son abbréviation. Les options sont (avec leur valeur
+ par défaut entre paranthèses) :
+ </para>
+ <variablelist>
+ <title>Options valides dans un fichier &fcrontabf;</title>
+
+ <varlistentry id="fcrontab.5.bootrun">
+ <term>bootrun</term>
+ <term>b</term>
+ <listitem>
+ <para><emphasis><type>booléen</type></emphasis>(<constant>false</constant>)</para>
+ <para>Lancer une ligne « & » au démarrage de &fcron; si
+ celle-ci avait dû être lancée pendant l'arrêt du système.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.dayand">
+ <term>dayand</term>
+ <listitem>
+ <para><emphasis><type>booléen</type></emphasis>(<constant>true</constant>)</para>
+ <para>Effectuer un ET logique entre le jour de la semaine et le
+ jour du mois.
+ </para>
+ <para>&voiraussi; option &optdayor;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.dayor">
+ <term>dayor</term>
+ <listitem>
+ <para><emphasis><type>booléen</type></emphasis>(<constant>false</constant>)</para>
+ <para>Effectuer un OU logique entre le jour de la semaine et le
+ jour du mois.
+ </para>
+ <para>&voiraussi; option &optdayand;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.exesev">
+ <term>exesev</term>
+ <listitem>
+ <para><emphasis><type>booléen</type></emphasis>(<constant>false</constant>)</para>
+ <para>Une tâche peut-elle être exécutée plusieurs fois
+ simultanément ?
+ </para>
+ <para>&voiraussi; options &optserialonce;, &optlavgonce;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.first">
+ <term>first</term>
+ <term>f</term>
+ <listitem>
+ <para><emphasis><type>time-value</type></emphasis></para>
+ <para>Temps avant la première exécution d'une tâche basée sur le
+ temps de fonctionnement du système (lignes « @ »).
+ Utile dans les cas suivants : vous avez plusieurs tâches à
+ exécuter, disons, toutes les heures. En positionnant différentes
+ valeurs « first » pour chaque tâche, vous évitez
+ que celles-ci soient lancées simultanément chaque fois.
+ Vous pouvez également la mettre à 0, ce qui est pratique
+ lorsqu'elle est utilisée avec l'option &optvolatile;.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.forcemail">
+ <term>forcemail</term>
+ <listitem>
+ <para><emphasis><type>booléen</type></emphasis>(<constant>false</constant>)</para>
+ <para>Envoyer la sortie par courriel même si celle-ci est vide.</para>
+ <para>&voiraussi; options &optmail;, &optmailto;, &optnolog;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.lavg">
+ <term>lavg</term>
+ <listitem>
+ <para><emphasis><type>réel</type></emphasis>(<constant>0</constant>)
+<emphasis><type>réel</type></emphasis>(<constant>0</constant>)
+<emphasis><type>réel</type></emphasis>(<constant>0</constant>)</para>
+ <para>Définir les valeurs de la charge moyenne du système sur 1,
+ 5 et 15 minutes (dans cet ordre) en dessous desquelles la tâche
+ pourra être lancée. Ces valeurs ne peuvent avoir qu'une seule
+ décimale (c.-à-d. « 2.3 »). S'il y en a plus, la valeur
+ sera arrondie. Mettre une valeur à 0 pour ignorer la charge
+ moyenne correspondante. Si vous mettez toutes les valeurs à 0,
+ la tâche sera lançée sans tenir compte de la charge système.
+ </para>
+ <para>&voiraussi; options &optlavg1;, &optlavg5;, &optlavg15;,
+ &optuntil;, &optlavgonce;, &optlavgor;, &optlavgand;,
+ &optstrict;, &optnoticenotrun;.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry id="fcrontab.5.lavgX">
+ <term>lavg1</term>
+ <term>lavg5</term>
+ <term>lavg15</term>
+ <listitem>
+ <para><emphasis><type>réel</type></emphasis>(<constant>0</constant>)</para>
+ <para>Définir le seuil des valeurs de charge moyenne du système
+ sur 1, 5 ou 15 minutes. Définir l'une d'elles à 0 pour ignorer
+ la charge moyenne correspondante.
+ </para>
+ <para>&voiraussi; options &optlavg;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.lavgand">
+ <term>lavgand</term>
+ <listitem>
+ <para><emphasis><type>booléen</type></emphasis>(<constant>true</constant>)</para>
+ <para>Effectuer un ET logique entre les valeurs de charge moyenne
+ du système à 1, 5 et 15 minutes.
+ </para>
+ <para>&voiraussi; options &optlavg;, &optlavgor;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.lavgonce">
+ <term>lavgonce</term>
+ <listitem>
+ <para><emphasis><type>booléen</type></emphasis>(<constant>&lavgoncedef;</constant>)</para>
+ <para>Une tâche peut-elle être mise plusieurs fois simultanément
+ dans la file d'attente charge moyenne du système (Ndt :
+ lavg queue) ?
+ </para>
+ <para>&voiraussi; options &optlavg;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.lavgor">
+ <term>lavgor</term>
+ <listitem>
+ <para><emphasis><type>booléen</type></emphasis>(<constant>false</constant>)</para>
+ <para>Effectuer un OU logique entre les valeurs de charge moyenne
+ du système à 1, 5 et 15 minutes.
+ </para>
+ <para>&voiraussi; options &optlavg;, &optlavgand;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.mail">
+ <term>mail</term>
+ <term>m</term>
+ <listitem>
+ <para><emphasis><type>booléen</type></emphasis>(<constant>true</constant>)</para>
+ <para>Envoyer la sortie (s'il y en a) par courriel, ou non.
+ </para>
+ <para>&voiraussi; options &optmailto;, &optforcemail;, &optnolog;.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.mailto">
+ <term>mailto</term>
+ <listitem>
+ <para><emphasis><type>email-address</type></emphasis>(<constant>nom
+ du propriétaire du fichier</constant>)</para>
+ <para>Envoyer la sortie (si nécessaire) par courriel à
+ « <replaceable>email-address</replaceable> ». Cela
+ peut être soit un nom d'utilisateur, soit une adresse courriel
+ complète. Une &optmailto; déclarée mais vide (chaîne "") est
+ équivalente à « <token>mail(false)</token> ».
+ </para>
+ <para>&voiraussi; options &optmail;, &optforcemail;, &optnolog;.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.nice">
+ <term>nice</term>
+ <term>n</term>
+ <listitem>
+ <para><emphasis><type>nice-value</type></emphasis></para>
+ <para>Modifier la priorité de la tâche. Une
+ <emphasis><type>nice-value</type></emphasis> est un entier
+ compris entre -20 (plus forte priorité) et 19 (plus faible
+ priorité). Seul le super-utilisateur est autorisé à utiliser
+ une valeur négative pour cette option.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.nolog">
+ <term>nolog</term>
+ <listitem>
+ <para><emphasis><type>booléen</type></emphasis>(<constant>false</constant>)</para>
+ <para>Si elle est positionnée à « true », journaliser
+ seulement les erreurs des tâches correspondantes. Peut être
+ utile pour des tâches lancées très fréquemment, et/ou pour
+ réduire les accès disque sur un ordinateur portable.
+ </para>
+ <para>&voiraussi; options &optmail;, &optmailto;, &optforcemail;.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.noticenotrun">
+ <term>noticenotrun</term>
+ <listitem>
+ <para><emphasis><type>booléen</type></emphasis>(<constant>false</constant>)</para>
+ <para>&fcron; devrait-il prévenir l'utilisateur par courriel de la
+ non exécution d'une tâche « % » ou d'une tâche
+ « & » ? (à cause de l'arrêt du système dans les
+ deux cas ou d'une charge moyenne trop élevée dans le second cas).
+ </para>
+ <para>&voiraussi; options &optlavg;, &optstrict;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.random">
+ <term>random</term>
+ <listitem>
+ <para><emphasis><type>booléen</type></emphasis>(<constant>false</constant>)</para>
+ <para>Dans une <link linkend="fcrontab.5.periodent">ligne lancée
+ périodiquement</link>, cette option répond à la question :
+ « Cette tâche devrait-elle être lancée aussitôt que possible
+ dans son intervalle de temps d'exécution (plus sûr), ou bien
+ &fcron; doit-il définir une date et heure aléatoire d'exécution
+ dans ce même intervalle de temps ? ». Veuillez noter
+ que si cette option est positionnée, la tâche peut ne pas être
+ lancée si &fcron; n'est pas en cours d'exécution durant
+ <emphasis>tout</emphasis> l'intervalle d'exécution. En outre,
+ sachez qu'il peut être relativement facile pour une personne
+ compétente de deviner l'heure de la prochaine exécution d'une
+ tâche utilisant l'option random : il est donc préférable
+ de ne pas baser la sécurité de quelque chose de sensible sur
+ l'aléa de cette option. Cependant, cela ne devrait pas poser de
+ problème pour la plupart de ses utilisations.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.reset">
+ <term>reset</term>
+ <listitem>
+ <para><emphasis><type>booléen</type></emphasis></para>
+ <para>Positionner toutes les options à leur valeur par défaut.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.runas">
+ <term>runas</term>
+ <listitem>
+ <para><emphasis><type>utilisateur</type></emphasis></para>
+ <para>Lancer avec les permissions et l'environnement de
+ « <replaceable>utilisateur</replaceable> » (seul le
+ super-utilisateur est autorisé à utiliser cette option).
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.runfreq">
+ <term>runfreq</term>
+ <term>r</term>
+ <listitem>
+ <para><emphasis><type>entier</type></emphasis></para>
+ <para>Lancer toutes les « <replaceable>runfreq</replaceable> »
+ correspondances de date et d'heure. (Cette option est ignorée
+ dans le cas d'<link linkend="uptent">entrées basées sur le temps
+ écoulé depuis le démarrage du système</link>).
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.serial">
+ <term>serial</term>
+ <term>s</term>
+ <listitem>
+ <para><emphasis><type>booléen</type></emphasis>(<constant>false</constant>)</para>
+ <para>&Fcron; fait tourner au plus &serialmaxrunning; tâche(s)
+ séquentielle(s) en même temps (c.-à-d. pour lesquelles l'option
+ serial est définie), et autant de tâches qui sont à la fois
+ séquentielles et dont l'exécution dépend aussi de la charge
+ système (autrement dit pour lesquelles les options serial et
+ lavg sont définies). Cette valeur peut être modifiée grâce à
+ l'option <option>-m</option> de &fcron;. Cette option trouve
+ toute son utilité dans le cas de tâches lourdes afin
+ d'éviter une surcharge du système.
+ </para>
+ <para>&voiraussi; options &optserialonce;, &optlavg;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.serialonce">
+ <term>serialonce</term>
+ <listitem>
+ <para><emphasis><type>booléen</type></emphasis>(<constant>&serialoncedef;</constant>)</para>
+ <para>Une tâche peut-elle être mise plusieurs fois simultanément
+ dans la file d'attente séquentielle ? (Ndt : serial
+ queue)
+ </para>
+ <para>&voiraussi; options &optexesev;, &optlavgonce;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.stdout">
+ <term>stdout</term>
+ <listitem>
+ <para><emphasis><type>booléen</type></emphasis>(<constant>false</constant>)</para>
+ <para>Si &fcron; s'exécute en arrière plan, permettre la sortie
+ des tâches sur stderr/stdout plutôt que par courriel ou que
+ l'ignorer.
+ </para>
+ <para>&voiraussi; option <option>--once</option> de <link
+ linkend="fcron.8">&fcron;(8)</link>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.strict">
+ <term>strict</term>
+ <listitem>
+ <para><emphasis><type>booléen</type></emphasis>(<constant>true</constant>)</para>
+ <para>Lorsqu'une tâche « % » de la file d'attente charge
+ moyenne du système (Ndt : lavg queue) est à la fin de
+ l'intervalle de temps d'exécution, doit-elle être retirée de la
+ file d'attente (strict(true), ainsi la tâche ne sera pas
+ exécutée), ou bien doit-elle y rester jusqu'à ce que la charge
+ moyenne du système permette son exécution (strict(false)) ?
+ </para>
+ <para>&voiraussi; options &optlavg;, &optnoticenotrun;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.timezone">
+ <term>timezone</term>
+ <listitem>
+ <para><emphasis><type>timezone-name</type></emphasis>(<constant>fuseau
+ horaire du système</constant>)
+ </para>
+ <para>Lancer la tâche dans le fuseau horaire fourni. timezone-name
+ est une chaîne qui doit être valide du point de vue de la
+ variable d'environnement TZ : consultez la documentation de
+ votre système pour plus de détails. Par exemple,
+ « Europe/Paris » est valide sur un système Linux.
+ Cette option gère correctement le changement d'heure.
+ </para>
+ <para>Veuillez noter que si vous fournissez un argument
+ timezone-name erroné, celui-ci sera SILENCIEUSEMENT ignoré,
+ et la tâche sera exécutée dans le fuseau horaire du système.
+ </para>
+ <para>ATTENTION : N'utilisez PAS simultanément les options
+ timezone et tzdiff ! Cela n'a pas de raison d'être, et
+ timezone est plus maligne que tzdiff.</para>
+ <para>&voiraussi; option &opttzdiff;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.tzdiff">
+ <term>tzdiff</term>
+ <listitem>
+ <para><emphasis><type>entier</type></emphasis>(<constant>0</constant>)</para>
+ <para>ATTENTION : cette option est obsolète : utilisez
+ plutôt l'option timezone !
+ </para>
+ <para>Différence de fuseau horaire (en heures, valeur comprise
+ entre -24 et 24) entre l'heure du système et l'heure locale
+ réelle. Cette option permet à l'utilisateur de définir ses lignes
+ « & » et « % » en temps local. Veuillez
+ noter que cette valeur est définie pour l'ensemble du fichier
+ &fcrontab;, et que seule la dernière déclaration est prise en
+ compte. tzdiff est quelque peu stupide : elle ne gère pas
+ le changement d'heure alors que l'option timezone le fait,
+ aussi, vous devriez utiliser cette dernière.
+ </para>
+ <para>&voiraussi; option &opttimezone;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.until">
+ <term>until</term>
+ <listitem>
+ <para><emphasis><type>time-value</type></emphasis>(<constant>0</constant>)</para>
+ <para>Définir le délai d'attente maximal pour les valeurs de
+ charge système. Si le délai est dépassé, la tâche sera lancée
+ indépendemment de la charge système. Définir until à 0 pour
+ désactiver le délai d'attente.
+ </para>
+ <para>&voiraussi; option &optlavg;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="fcrontab.5.volatile">
+ <term>volatile</term>
+ <listitem>
+ <para><emphasis><type>booléen</type></emphasis>(<constant>false</constant>)</para>
+ <para>Quand cette option est activée, la tâche est basée sur un
+ temps « volatile », qu'on pourrait aussi qualifier de
+ « non persistant ». Plus précisement, &fcron; ne
+ « retient » pas le temps écoulé depuis la dernière
+ exécution des tâches « volatiles » entre deux
+ démarrages de &fcron;, et agit comme si les lignes avaient été
+ fraichement ajoutées à chaque démarrage de &fcron;. Ainsi,
+ l'option &optfirst; s'appliquera par exemple pour les lignes
+ « volatiles » à chaque démarrage de fcron. Cette option
+ est en particulier utile lorsque &fcron; est lancé à partir d'un
+ script qui tourne, par exemple, seulement pendant une connection
+ à Internet non permanente : l'exécution des tâches
+ « volatiles » est alors basée sur le temps depuis le
+ début de la connection et le lancement de &fcron; plutôt que sur
+ le temps absolu. Enfin, veuillez noter que cette option s'associe
+ bien à l'option &optfirst;.
+ </para>
+ <para>&voiraussi; options &optfirst;, &optstdout;, <link
+ linkend="uptent">Entrées basées sur le temps écoulé depuis le
+ démarrage du système</link>, l'option <option>--once</option> de
+ &fcron; dans <link linkend="fcron.8">&fcron;(8)</link>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Un argument de type <type>booléen</type> peut ne pas être indiqué,
+ auquel cas les parenthèses ne seront pas utilisées et il sera
+ interprété comme étant <constant>true</constant> ; les chaînes
+ « true », « yes » ou « 1 » signifient
+ <constant>true</constant> ; et les chaînes « false »,
+ « no » ou « 0 » signifient
+ <constant>false</constant>. Voir plus haut les explications sur les
+ valeurs de temps (section <link linkend="uptent">« Entrées basées
+ sur le temps écoulé depuis le démarrage du système »</link>).
+ </para>
+ <para>Veuillez noter que <varname>dayand</varname> et
+ <varname>dayor</varname> sont en fait la même option : une valeur
+ « false » pour <varname>dayand</varname> est équivalente à
+ une valeur « true » pour <varname>dayor</varname> et
+ réciproquement, une valeur « false » pour
+ <varname>dayor</varname> est équivalente à une valeur
+ « true » pour <varname>dayand</varname>. C'est également
+ le cas pour les options <varname>lavgand</varname> et
+ <varname>lavgor</varname>.
+ </para>
+ <para>Veuillez noter un cas particulier à gérer : une tâche aurait
+ due être placée dans la file d'attente séquentielle, *mais* la
+ précédente entrée de cette tâche n'est pas encore achevée à cause
+ d'une forte charge système ou d'un quelconque événement extérieur.
+ L'option <varname>serialonce</varname> répond à cette question :
+ « La nouvelle entrée de cette tâche doit-elle être
+ ignorée ? ». De cette facon, on peut distinguer d'une part
+ les tâches sans contrainte forte sur l'heure d'exécution qui doivent
+ être exécutées un nombre de fois bien défini (serial(yes),
+ serialonce(false)), et d'autre part les tâches toujours sans contrainte
+ forte sur l'heure d'exécution mais dont le nombre d'exécutions n'est
+ pas important ou qu'il est inutile de lancer deux fois d'affilée
+ (serial(true), serialonce(true)), qu'on ne rentrera donc pas une
+ deuxième fois dans la file séquentielle de façon à éviter de charger
+ le système inutilement. Par exemple, « Payer ses employés »
+ est une tâche qui doit être exécutée exactement une fois par mois
+ (serialonce(false)), alors que « faire le ménage » doit être
+ exécutée de préférence une fois par semaine, mais il est inutile de le
+ faire deux fois d'affilée si par hasard on avait pris du retard
+ (serialonce(true)).
+ </para>
+ <para>Les mêmes considérations s'appliquent pour la file d'attente charge
+ système et peuvent être exprimées par l'option
+ <varname>lavgonce</varname>.
+ </para>
+ <para>De plus, si les files d'attente séquentielle et charge système
+ contiennent respectivement plus de &serialqueuemax; et &lavgqueuemax;
+ tâches, toute nouvelle tâche sera rejetée (et donc non exécutée) pour
+ éviter une saturation de ressources système. Dans ce cas, un message
+ d'erreur sera journalisé à travers syslog.
+ </para>
+ <para>Enfin, s'il reste des tâches dans les files d'attente séquentielle
+ et charge système au moment de l'arrêt de &fcron;, celles-ci seront
+ déposées une fois dans leur file correspondante au redémarrage
+ (l'ordre peut ne pas être conservé).</para>
+ <para>
+ <example>
+ <title>Exemple de dÉclaration d'option :</title>
+ <programlisting>!reset,serial(true),dayor,bootrun(0),mailto(root),lavg(.5,2,1.5)</programlisting>
+ </example>
+ </para>
+ </refsect2>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Exemples</title>
+ <para><example>
+ <title>Exemple d'un fichier fcrontab utilisateur</title>
+ <programlisting>
+# utiliser /bin/bash pour lancer les commandes, quoique puisse indiquer /etc/passwd
+SHELL=/bin/bash
+
+# envoyer la sortie par courriel à l'utilisateur thib,
+# quelque soit le propriétaire de ce fcrontab.
+!mailto(thib)
+
+# définir une variable équivalente à " Salut thib et paul ! "
+# les caractères « nouvelle ligne » sont échappés avec
+# une barre oblique inverse « \ » et les guillemets servent
+# à conserver les espaces de début et de fin de chaîne
+TEXT= " Salut\
+ thib et\
+ paul ! "
+
+# on veut utiliser la file d'attente séquentielle mais pas l'option bootrun
+!serial(true),b(0)
+
+# lancer la première fois après 5 minutes de fonctionnement du système,
+# puis toutes les heures par la suite
+@first(5) 1h echo "Lancer toutes les heures"
+
+# lancer tous les jours
+@ 1d echo "fcron quotidien"
+
+# lancer une fois dans la matinée et une fois dans l'après-midi si le système
+# est en fonctionnement à n'importe quel moment pendant ces intervalles de temps
+%hours * 8-12,14-18 * * * echo "Hé patron, je bosse aujourd'hui !"
+
+# lancer une fois par semaine à l'heure du déjeuner
+%weekly * 12-13 echo "J'ai laissé allumé mon système au moins une fois\
+ à l'heure du déjeuner cette semaine."
+
+# lancer tous les samedi et dimanche à 9:05
+5 9 * * sat,sun echo "Bonjour Thibault !"
+
+# lancer tous les jours pairs du mois de mars à 18:00, sauf le 16
+0 18 2-30/2~16 Mar * echo "Il est temps de se rentrer à la maison !"
+
+# la ligne précédente est équivalente à
+& 0 18 2-30/2~16 Mar * echo "Il est temps de se rentrer à la maison !"
+
+# mettre toutes les options à leur valeur par défaut et définir runfreq
+# pour les lignes qui vont suivre
+!reset,runfreq(7)
+
+# lancer une fois toutes les 7 correspondances (grâce à la déclaration précédente),
+# ainsi, si le système est en fonctionnement tous les jours à 10 heures,
+# la commande sera lancée une fois par semaine
+& 0 10 * * * echo "Si vous avez vu ce message pour la dernière fois il y a 7 jours,\
+ c'est que cette machine a fonctionné tous les jours à 10 heures durant la dernière semaine.\
+ Si vous avez eu ce message il y a 8 jours, c'est que cette machine n'a pas fonctionné\
+ un jour à 10:00 heures depuis le dernier message, etc."
+
+# attendre toutes les heures que la charge système moyenne sur 5 minutes
+# soit inférieure à 0.9
+@lavg5(0.9) 1h echo "La charge moyenne système est faible"
+
+# attendre au maximum 5 heures chaque jour une baisse de la charge système
+@lavgand,lavg(1,2.0,3.0),until(5h) 1d echo "La charge système vient de diminuer"
+
+# attendre le meilleur moment pour lancer une tâche lourde
+@lavgor,lavg(0.8,1.2,1.5),nice(10) 1w echo "C'est une très lourde tâche"
+
+# lancer une fois toutes les nuits soit entre 21:00 et 23:00,
+# soit entre 3:00 et 6:00
+%nightly,lavg(1.5,2,2) * 21-23,3-6 echo "Il est temps de récupérer\
+ la dernière version de Mozilla !"
+</programlisting>
+ </example></para>
+ </refsect1>
+
+ <refsect1>
+ <title>Fichiers</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>&etc;/&fcron.conf.location;</filename></term>
+ <listitem>
+ <para>Fichier de configuration de &fcron;, &fcrontab et &fcrondyn; :
+ contient les chemins (répertoire spool, fichier pid) et les
+ programmes par défaut à utiliser (éditeur, shell, etc.). Voir
+ <link linkend="fcron.conf.5">&fcron.conf(5)</link> pour plus de
+ détails.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>&etc;/&fcron.allow;</filename></term>
+ <listitem>
+ <para>Utilisateurs autorisés à utiliser &fcrontab; et &fcrondyn;
+ (un seul nom par ligne, le nom spécial « all »
+ signifiant tout le monde).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>&etc;/&fcron.deny;</filename></term>
+ <listitem>
+ <para>Utilisateurs qui ne sont pas autorisés à utiliser &fcrontab;
+ et &fcrondyn; (même format que le fichier précédent).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>&etc;/pam.d/fcron</filename> (or
+<filename>&etc;/pam.conf</filename>)</term>
+ <listitem>
+ <para>Fichier de configuration <productname>PAM</productname> pour
+ &fcron;. Voir &pam;(8) pour plus de détails.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ &manpage-foot;
+
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-parent-document:("fcron-doc.sgml" "book" "chapter" "sect1" "")
+End:
+-->
--- /dev/null
+<appendix id="fdl">
+ <title>GNU Free Documentation License</title>
+<!-- - GNU Project - Free Software Foundation (FSF) -->
+<!-- LINK REV="made" HREF="mailto:webmasters@gnu.org" -->
+
+
+ <!-- sect1>
+ <title>GNU Free Documentation License</title -->
+
+ <para>Version 1.1, March 2000</para>
+
+ <blockquote>
+ <para>Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple
+Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and
+distribute verbatim copies of this license document, but changing it is not
+allowed.</para>
+ </blockquote>
+
+ <sect1 label="0" id="fdl-preamble">
+ <title>PREAMBLE</title>
+
+ <para>The purpose of this License is to make a manual, textbook, or
+other written document "free" in the sense of freedom: to assure everyone the
+effective freedom to copy and redistribute it, with or without modifying it,
+either commercially or noncommercially. Secondarily, this License preserves for
+the author and publisher a way to get credit for their work, while not being
+considered responsible for modifications made by others.</para>
+
+ <para>This License is a kind of "copyleft", which means that
+derivative works of the document must themselves be free in the same sense. It
+complements the GNU General Public License, which is a copyleft license designed
+for free software.</para>
+
+ <para>We have designed this License in order to use it for manuals
+for free software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the software
+does. But this License is not limited to software manuals; it can be used for
+any textual work, regardless of subject matter or whether it is published as a
+printed book. We recommend this License principally for works whose purpose is
+instruction or reference.</para>
+ </sect1>
+
+ <sect1 label="1" id="fdl-applicability">
+ <title>APPLICABILITY AND DEFINITIONS</title>
+
+ <para>This License applies to any manual or other work that contains
+a notice placed by the copyright holder saying it can be distributed under the
+terms of this License. The "Document", below, refers to any such manual or
+work. Any member of the public is a licensee, and is addressed as "you".</para>
+
+ <para>A "Modified Version" of the Document means any work containing
+the Document or a portion of it, either copied verbatim, or with modifications
+and/or translated into another language.</para>
+
+ <para>A "Secondary Section" is a named appendix or a front-matter
+section of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall subject (or to
+related matters) and contains nothing that could fall directly within that
+overall subject. (For example, if the Document is in part a textbook of
+mathematics, a Secondary Section may not explain any mathematics.) The
+relationship could be a matter of historical connection with the subject or with
+related matters, or of legal, commercial, philosophical, ethical or political
+position regarding them.</para>
+
+ <para>The "Invariant Sections" are certain Secondary Sections whose
+titles are designated, as being those of Invariant Sections, in the notice that
+says that the Document is released under this License.</para>
+
+ <para>The "Cover Texts" are certain short passages of text that are
+listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.</para>
+
+ <para>A "Transparent" copy of the Document means a machine-readable
+copy, represented in a format whose specification is available to the general
+public, whose contents can be viewed and edited directly and straightforwardly
+with generic text editors or (for images composed of pixels) generic paint
+programs or (for drawings) some widely available drawing editor, and that is
+suitable for input to text formatters or for automatic translation to a variety
+of formats suitable for input to text formatters. A copy made in an otherwise
+Transparent file format whose markup has been designed to thwart or discourage
+subsequent modification by readers is not Transparent. A copy that is not
+"Transparent" is called "Opaque".</para>
+
+ <para>Examples of suitable formats for Transparent copies include
+plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or
+XML using a publicly available DTD, and standard-conforming simple HTML designed
+for human modification. Opaque formats include PostScript, PDF, proprietary
+formats that can be read and edited only by proprietary word processors, SGML or
+XML for which the DTD and/or processing tools are not generally available, and
+the machine-generated HTML produced by some word processors for output purposes
+only.</para>
+
+ <para>The "Title Page" means, for a printed book, the title page
+itself, plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page. For works in formats which do
+not have any title page as such, "Title Page" means the text near the most
+prominent appearance of the work's title, preceding the beginning of the body of
+the text.</para>
+ </sect1>
+
+ <sect1 label="2" id="fdl-verbatim">
+ <title>VERBATIM COPYING</title>
+
+ <para>You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the copyright
+notices, and the license notice saying this License applies to the Document are
+reproduced in all copies, and that you add no other conditions whatsoever to
+those of this License. You may not use technical measures to obstruct or
+control the reading or further copying of the copies you make or distribute.
+However, you may accept compensation in exchange for copies. If you distribute
+a large enough number of copies you must also follow the conditions in section
+3.</para>
+
+ <para>You may also lend copies, under the same conditions stated
+above, and you may publicly display copies.</para>
+ </sect1>
+
+ <sect1 label="3" id="fdl-copying">
+ <title>COPYING IN QUANTITY</title>
+
+ <para>If you publish printed copies of the Document numbering more
+than 100, and the Document's license notice requires Cover Texts, you must
+enclose the copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back
+cover. Both covers must also clearly and legibly identify you as the publisher
+of these copies. The front cover must present the full title with all words of
+the title equally prominent and visible. You may add other material on the
+covers in addition. Copying with changes limited to the covers, as long as they
+preserve the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.</para>
+
+ <para>If the required texts for either cover are too voluminous to
+fit legibly, you should put the first ones listed (as many as fit reasonably) on
+the actual cover, and continue the rest onto adjacent pages.</para>
+
+ <para>If you publish or distribute Opaque copies of the Document
+numbering more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy a
+publicly-accessible computer-network location containing a complete Transparent
+copy of the Document, free of added material, which the general network-using
+public has access to download anonymously at no charge using public-standard
+network protocols. If you use the latter option, you must take reasonably
+prudent steps, when you begin distribution of Opaque copies in quantity, to
+ensure that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an Opaque
+copy (directly or through your agents or retailers) of that edition to the
+public.</para>
+
+ <para>It is requested, but not required, that you contact the
+authors of the Document well before redistributing any large number of copies,
+to give them a chance to provide you with an updated version of the
+Document.</para>
+ </sect1>
+
+ <sect1 label="4" id="fdl-modifications">
+ <title>MODIFICATIONS</title>
+
+ <para>You may copy and distribute a Modified Version of the Document
+under the conditions of sections 2 and 3 above, provided that you release the
+Modified Version under precisely this License, with the Modified Version filling
+the role of the Document, thus licensing distribution and modification of the
+Modified Version to whoever possesses a copy of it. In addition, you must do
+these things in the Modified Version:</para>
+
+ <orderedlist numeration="upperalpha">
+ <listitem><para>Use in the Title Page (and on the covers, if
+any) a title distinct from that of the Document, and from those of previous
+versions (which should, if there were any, be listed in the History section of
+the Document). You may use the same title as a previous version if the original
+publisher of that version gives permission.</para>
+ </listitem>
+
+ <listitem><para>List on the Title Page, as authors, one or more
+persons or entities responsible for authorship of the modifications in the
+Modified Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has less than five).</para>
+ </listitem>
+
+ <listitem><para>State on the Title page the name of the
+publisher of the Modified Version, as the publisher.</para>
+ </listitem>
+
+ <listitem><para>Preserve all the copyright notices of the
+Document.</para>
+ </listitem>
+
+ <listitem><para>Add an appropriate copyright notice for your
+modifications adjacent to the other copyright notices.</para>
+ </listitem>
+
+ <listitem><para>Include, immediately after the copyright
+notices, a license notice giving the public permission to use the Modified
+Version under the terms of this License, in the form shown in the Addendum
+below.</para>
+ </listitem>
+
+ <listitem><para>Preserve in that license notice the full lists
+of Invariant Sections and required Cover Texts given in the Document's license
+notice.</para>
+ </listitem>
+
+ <listitem><para>Include an unaltered copy of this
+License.</para>
+ </listitem>
+
+ <listitem><para>Preserve the section entitled "History", and its
+title, and add to it an item stating at least the title, year, new authors, and
+publisher of the Modified Version as given on the Title Page. If there is no
+section entitled "History" in the Document, create one stating the title, year,
+authors, and publisher of the Document as given on its Title Page, then add an
+item describing the Modified Version as stated in the previous sentence.</para>
+ </listitem>
+
+ <listitem><para>Preserve the network location, if any, given in
+the Document for public access to a Transparent copy of the Document, and
+likewise the network locations given in the Document for previous versions it
+was based on. These may be placed in the "History" section. You may omit a
+network location for a work that was published at least four years before the
+Document itself, or if the original publisher of the version it refers to gives
+permission.</para>
+ </listitem>
+
+ <listitem><para>In any section entitled "Acknowledgements" or
+"Dedications", preserve the section's title, and preserve in the section all the
+substance and tone of each of the contributor acknowledgements and/or
+dedications given therein.</para>
+ </listitem>
+
+ <listitem><para>Preserve all the Invariant Sections of the
+Document, unaltered in their text and in their titles. Section numbers or the
+equivalent are not considered part of the section titles.</para>
+ </listitem>
+
+ <listitem><para>Delete any section entitled "Endorsements".
+Such a section may not be included in the Modified Version.</para>
+ </listitem>
+
+ <listitem><para>Do not retitle any existing section as
+"Endorsements" or to conflict in title with any Invariant Section.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material copied
+from the Document, you may at your option designate some or all of these
+sections as invariant. To do this, add their titles to the list of Invariant
+Sections in the Modified Version's license notice. These titles must be
+distinct from any other section titles.</para>
+
+ <para>You may add a section entitled "Endorsements", provided it
+contains nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has been
+approved by an organization as the authoritative definition of a
+standard.</para>
+
+ <para>You may add a passage of up to five words as a Front-Cover
+Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the
+list of Cover Texts in the Modified Version. Only one passage of Front-Cover
+Text and one of Back-Cover Text may be added by (or through arrangements made
+by) any one entity. If the Document already includes a cover text for the same
+cover, previously added by you or by arrangement made by the same entity you are
+acting on behalf of, you may not add another; but you may replace the old one,
+on explicit permission from the previous publisher that added the old
+one.</para>
+
+ <para>The author(s) and publisher(s) of the Document do not by this
+License give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.</para>
+ </sect1>
+
+ <sect1 label="5" id="fdl-combining">
+ <title>COMBINING DOCUMENTS</title>
+
+ <para>You may combine the Document with other documents released
+under this License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the Invariant
+Sections of all of the original documents, unmodified, and list them all as
+Invariant Sections of your combined work in its license notice.</para>
+
+ <para>The combined work need only contain one copy of this License,
+and multiple identical Invariant Sections may be replaced with a single copy.
+If there are multiple Invariant Sections with the same name but different
+contents, make the title of each such section unique by adding at the end of it,
+in parentheses, the name of the original author or publisher of that section if
+known, or else a unique number. Make the same adjustment to the section titles
+in the list of Invariant Sections in the license notice of the combined
+work.</para>
+
+ <para>In the combination, you must combine any sections entitled
+"History" in the various original documents, forming one section entitled
+"History"; likewise combine any sections entitled "Acknowledgements", and any
+sections entitled "Dedications". You must delete all sections entitled
+"Endorsements."</para>
+ </sect1>
+
+ <sect1 label="6" id="fdl-collections">
+ <title>COLLECTIONS OF DOCUMENTS</title>
+
+ <para>You may make a collection consisting of the Document and other
+documents released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in the
+collection, provided that you follow the rules of this License for verbatim
+copying of each of the documents in all other respects.</para>
+
+ <para>You may extract a single document from such a collection, and
+distribute it individually under this License, provided you insert a copy of
+this License into the extracted document, and follow this License in all other
+respects regarding verbatim copying of that document.</para>
+ </sect1>
+
+ <sect1 label="7" id="fdl-aggregation">
+ <title>AGGREGATION WITH INDEPENDENT WORKS</title>
+
+ <para>A compilation of the Document or its derivatives with other
+separate and independent documents or works, in or on a volume of a storage or
+distribution medium, does not as a whole count as a Modified Version of the
+Document, provided no compilation copyright is claimed for the compilation.
+Such a compilation is called an "aggregate", and this License does not apply to
+the other self-contained works thus compiled with the Document, on account of
+their being thus compiled, if they are not themselves derivative works of the
+Document.</para>
+
+ <para>If the Cover Text requirement of section 3 is applicable to
+these copies of the Document, then if the Document is less than one quarter of
+the entire aggregate, the Document's Cover Texts may be placed on covers that
+surround only the Document within the aggregate. Otherwise they must appear on
+covers around the whole aggregate.</para>
+ </sect1>
+
+ <sect1 label="8" id="fdl-translation">
+ <title>TRANSLATION</title>
+
+ <para>Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4. Replacing
+Invariant Sections with translations requires special permission from their
+copyright holders, but you may include translations of some or all Invariant
+Sections in addition to the original versions of these Invariant Sections. You
+may include a translation of this License provided that you also include the
+original English version of this License. In case of a disagreement between the
+translation and the original English version of this License, the original
+English version will prevail.</para>
+ </sect1>
+
+ <sect1 label="9" id="fdl-termination">
+ <title>TERMINATION</title>
+
+ <para>You may not copy, modify, sublicense, or distribute the
+Document except as expressly provided for under this License. Any other attempt
+to copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License. However, parties who
+have received copies, or rights, from you under this License will not have their
+licenses terminated so long as such parties remain in full compliance.</para>
+ </sect1>
+
+ <sect1 label="10" id="fdl-future">
+ <title>FUTURE REVISIONS OF THIS LICENSE</title>
+
+ <para>The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to address
+new problems or concerns. See <ulink
+url="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</ulink>.</para>
+
+ <para>Each version of the License is given a distinguishing version
+number. If the Document specifies that a particular numbered version of this
+License "or any later version" applies to it, you have the option of following
+the terms and conditions either of that specified version or of any later
+version that has been published (not as a draft) by the Free Software
+Foundation. If the Document does not specify a version number of this License,
+you may choose any version ever published (not as a draft) by the Free Software
+Foundation.</para>
+ </sect1>
+
+ <sect1 label="" id="fdl-howto">
+ <title>How to use this License for your documents</title>
+
+ <para>To use this License in a document you have written, include a
+copy of the License in the document and put the following copyright and license
+notices just after the title page:</para>
+
+ <blockquote><para>
+ Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute
+and/or modify this document under the terms of the GNU Free Documentation
+License, Version 1.1 or any later version published by the Free Software
+Foundation; with the Invariant Sections being LIST THEIR TITLES, with the
+Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy
+of the license is included in the section entitled "GNU Free Documentation
+License".
+</para></blockquote>
+
+ <para>If you have no Invariant Sections, write "with no Invariant
+Sections" instead of saying which ones are invariant. If you have no
+Front-Cover Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts
+being LIST"; likewise for Back-Cover Texts.</para>
+
+ <para>If your document contains nontrivial examples of program code,
+we recommend releasing these examples in parallel under your choice of free
+software license, such as the GNU General Public License, to permit their use in
+free software.</para>
+ </sect1>
+
+</appendix>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-parent-document:("fcron-doc.sgml" "book" "appendix" "")
+End:
+-->
--- /dev/null
+<appendix id="gpl">
+ <title>GNU GENERAL PUBLIC LICENSE</title>
+
+ <para>Version 2, June 1991</para>
+
+ <blockquote>
+ <para>Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59
+Temple Place - Suite 330, Boston, MA 02111-1307, USA Everyone is permitted to
+copy and distribute verbatim copies of this license document, but changing it is
+not allowed.</para>
+ </blockquote>
+
+ <sect1 label="0" id="gpl-preamble">
+ <title>PREAMBLE</title>
+
+ <para>The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public License is
+intended to guarantee your freedom to share and change free software--to make
+sure the software is free for all its users. This General Public License applies
+to most of the Free Software Foundation's software and to any other program
+whose authors commit to using it. (Some other Free Software Foundation software
+is covered by the GNU Library General Public License instead.) You can apply it
+to your programs, too.</para>
+ <para>
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the freedom to
+distribute copies of free software (and charge for this service if you wish),
+that you receive source code or can get it if you want it, that you can change
+the software or use pieces of it in new free programs; and that you know you can
+do these things.</para>
+ <para>
+To protect your rights, we need to make restrictions that forbid anyone to deny
+you these rights or to ask you to surrender the rights. These restrictions
+translate to certain responsibilities for you if you distribute copies of the
+software, or if you modify it.</para>
+ <para>
+For example, if you distribute copies of such a program, whether gratis or for a
+fee, you must give the recipients all the rights that you have. You must make
+sure that they, too, receive or can get the source code. And you must show them
+these terms so they know their rights.</para>
+ <para>
+We protect your rights with two steps: (1) copyright the software, and (2) offer
+you this license which gives you legal permission to copy, distribute and/or
+modify the software.</para>
+ <para>
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If the
+software is modified by someone else and passed on, we want its recipients to
+know that what they have is not the original, so that any problems introduced by
+others will not reflect on the original authors' reputations.</para>
+ <para>
+Finally, any free program is threatened constantly by software patents. We wish
+to avoid the danger that redistributors of a free program will individually
+obtain patent licenses, in effect making the program proprietary. To prevent
+this, we have made it clear that any patent must be licensed for everyone's free
+use or not licensed at all.</para>
+ <para>
+The precise terms and conditions for copying, distribution and modification
+follow.</para>
+
+ </sect1>
+
+ <sect1 label="1" id="gpl-terms">
+ <title>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
+MODIFICATION</title>
+
+ <para>0. This License applies to any program or other work which
+contains a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below, refers to
+any such program or work, and a "work based on the Program" means either the
+Program or any derivative work under copyright law: that is to say, a work
+containing the Program or a portion of it, either verbatim or with modifications
+and/or translated into another language. (Hereinafter, translation is included
+without limitation in the term "modification".) Each licensee is addressed as
+"you".</para>
+ <para>
+Activities other than copying, distribution and modification are not covered by
+this License; they are outside its scope. The act of running the Program is not
+restricted, and the output from the Program is covered only if its contents
+constitute a work based on the Program (independent of having been made by
+running the Program). Whether that is true depends on what the Program
+does.</para>
+ <para>
+1. You may copy and distribute verbatim copies of the Program's source code as
+you receive it, in any medium, provided that you conspicuously and appropriately
+publish on each copy an appropriate copyright notice and disclaimer of warranty;
+keep intact all the notices that refer to this License and to the absence of any
+warranty; and give any other recipients of the Program a copy of this License
+along with the Program.</para>
+ <para>
+You may charge a fee for the physical act of transferring a copy, and you may at
+your option offer warranty protection in exchange for a fee.</para>
+ <para>
+2. You may modify your copy or copies of the Program or any portion of it, thus
+forming a work based on the Program, and copy and distribute such modifications
+or work under the terms of Section 1 above, provided that you also meet all of
+these conditions:</para>
+ <para>
+ * a) You must cause the modified files to carry prominent notices stating
+that you changed the files and the date of any change.</para>
+ <para>
+ * b) You must cause any work that you distribute or publish, that in whole
+or in part contains or is derived from the Program or any part thereof, to be
+licensed as a whole at no charge to all third parties under the terms of this
+License.</para>
+ <para>
+ * c) If the modified program normally reads commands interactively when run,
+you must cause it, when started running for such interactive use in the most
+ordinary way, to print or display an announcement including an appropriate
+copyright notice and a notice that there is no warranty (or else, saying that
+you provide a warranty) and that users may redistribute the program under these
+conditions, and telling the user how to view a copy of this License. (Exception:
+if the Program itself is interactive but does not normally print such an
+announcement, your work based on the Program is not required to print an
+announcement.)</para>
+ <para>
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Program, and can be reasonably
+considered independent and separate works in themselves, then this License, and
+its terms, do not apply to those sections when you distribute them as separate
+works. But when you distribute the same sections as part of a whole which is a
+work based on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the entire whole,
+and thus to each and every part regardless of who wrote it.</para>
+ <para>
+Thus, it is not the intent of this section to claim rights or contest your
+rights to work written entirely by you; rather, the intent is to exercise the
+right to control the distribution of derivative or collective works based on the
+Program.</para>
+ <para>
+In addition, mere aggregation of another work not based on the Program with the
+Program (or with a work based on the Program) on a volume of a storage or
+distribution medium does not bring the other work under the scope of this
+License.</para>
+ <para>
+3. You may copy and distribute the Program (or a work based on it, under Section
+2) in object code or executable form under the terms of Sections 1 and 2 above
+provided that you also do one of the following:</para>
+ <para>
+ * a) Accompany it with the complete corresponding machine-readable source
+code, which must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange; or,</para>
+ <para>
+ * b) Accompany it with a written offer, valid for at least three years, to
+give any third party, for a charge no more than your cost of physically
+performing source distribution, a complete machine-readable copy of the
+corresponding source code, to be distributed under the terms of Sections 1 and 2
+above on a medium customarily used for software interchange; or,</para>
+ <para>
+ * c) Accompany it with the information you received as to the offer to
+distribute corresponding source code. (This alternative is allowed only for
+noncommercial distribution and only if you received the program in object code
+or executable form with such an offer, in accord with Subsection b
+above.)</para>
+ <para>
+The source code for a work means the preferred form of the work for making
+modifications to it. For an executable work, complete source code means all the
+source code for all modules it contains, plus any associated interface
+definition files, plus the scripts used to control compilation and installation
+of the executable. However, as a special exception, the source code distributed
+need not include anything that is normally distributed (in either source or
+binary form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component itself
+accompanies the executable.</para>
+ <para>
+If distribution of executable or object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the source code
+from the same place counts as distribution of the source code, even though third
+parties are not compelled to copy the source along with the object code.</para>
+ <para>
+4. You may not copy, modify, sublicense, or distribute the Program except as
+expressly provided under this License. Any attempt otherwise to copy, modify,
+sublicense or distribute the Program is void, and will automatically terminate
+your rights under this License. However, parties who have received copies, or
+rights, from you under this License will not have their licenses terminated so
+long as such parties remain in full compliance.</para>
+ <para>
+5. You are not required to accept this License, since you have not signed it.
+However, nothing else grants you permission to modify or distribute the Program
+or its derivative works. These actions are prohibited by law if you do not
+accept this License. Therefore, by modifying or distributing the Program (or any
+work based on the Program), you indicate your acceptance of this License to do
+so, and all its terms and conditions for copying, distributing or modifying the
+Program or works based on it.</para>
+ <para>
+6. Each time you redistribute the Program (or any work based on the Program),
+the recipient automatically receives a license from the original licensor to
+copy, distribute or modify the Program subject to these terms and conditions.
+You may not impose any further restrictions on the recipients' exercise of the
+rights granted herein. You are not responsible for enforcing compliance by third
+parties to this License.</para>
+ <para>
+7. If, as a consequence of a court judgment or allegation of patent infringement
+or for any other reason (not limited to patent issues), conditions are imposed
+on you (whether by court order, agreement or otherwise) that contradict the
+conditions of this License, they do not excuse you from the conditions of this
+License. If you cannot distribute so as to satisfy simultaneously your
+obligations under this License and any other pertinent obligations, then as a
+consequence you may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by all those
+who receive copies directly or indirectly through you, then the only way you
+could satisfy both it and this License would be to refrain entirely from
+distribution of the Program.</para>
+ <para>
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply and the
+section as a whole is intended to apply in other circumstances.</para>
+ <para>
+It is not the purpose of this section to induce you to infringe any patents or
+other property right claims or to contest validity of any such claims; this
+section has the sole purpose of protecting the integrity of the free software
+distribution system, which is implemented by public license practices. Many
+people have made generous contributions to the wide range of software
+distributed through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose that
+choice.</para>
+ <para>
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License.</para>
+ <para>
+8. If the distribution and/or use of the Program is restricted in certain
+countries either by patents or by copyrighted interfaces, the original copyright
+holder who places the Program under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In such
+case, this License incorporates the limitation as if written in the body of this
+License.</para>
+ <para>
+9. The Free Software Foundation may publish revised and/or new versions of the
+General Public License from time to time. Such new versions will be similar in
+spirit to the present version, but may differ in detail to address new problems
+or concerns.</para>
+ <para>
+Each version is given a distinguishing version number. If the Program specifies
+a version number of this License which applies to it and "any later version",
+you have the option of following the terms and conditions either of that version
+or of any later version published by the Free Software Foundation. If the
+Program does not specify a version number of this License, you may choose any
+version ever published by the Free Software Foundation.</para>
+ <para>
+10. If you wish to incorporate parts of the Program into other free programs
+whose distribution conditions are different, write to the author to ask for
+permission. For software which is copyrighted by the Free Software Foundation,
+write to the Free Software Foundation; we sometimes make exceptions for this.
+Our decision will be guided by the two goals of preserving the free status of
+all derivatives of our free software and of promoting the sharing and reuse of
+software generally.</para>
+ <para>
+NO WARRANTY</para>
+ <para>
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE
+PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED
+IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS
+IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
+NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.</para>
+ <para>
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
+ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
+PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
+SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY
+TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
+THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
+PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</para>
+ <para>END OF TERMS AND CONDITIONS</para>
+ </sect1>
+
+ <sect1 label="" id="gpl-howto">
+ <title>How to use this License for your documents</title>
+
+ <para> If you develop a new program, and you want it to be of the
+greatest possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these
+terms.</para>
+ <para>To do so, attach the following notices to the program. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.</para>
+
+ <blockquote><para>
+<replaceable>one line to give the program's name and an idea of what it
+does.</replaceable> Copyright (C) <replaceable>yyyy</replaceable> name of author
+This program is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free Software
+Foundation; either version 2 of the License, or (at your option) any later
+version. This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+details. You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc., 59
+Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+</para></blockquote>
+
+ <para>Also add information on how to contact you by electronic and
+paper mail.</para>
+
+ <para>If the program is interactive, make it output a short notice
+like this when it starts in an interactive mode:</para>
+ <screen>Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This
+is free software, and you are welcome to redistribute it under certain
+conditions; type `show c' for details.
+</screen>
+ <para>The hypothetical commands `<command>show w</command>' and
+`<command>show c</command>' should show the appropriate parts of the General
+Public License. Of course, the commands you use may be called something other
+than `<command>show w</command>' and `<command>show c</command>'; they could
+even be mouse-clicks or menu items--whatever suits your program.</para>
+ <para>You should also get your employer (if you work as a
+programmer) or your school, if any, to sign a "copyright disclaimer" for the
+program, if necessary. Here is a sample; alter the names:</para>
+ <blockquote>
+ <para>Yoyodyne, Inc., hereby disclaims all copyright interest in
+the program `Gnomovision' (which makes passes at compilers) written by James
+Hacker.</para>
+ <para><replaceable>signature of Ty Coon</replaceable>, 1 April
+1989 Ty Coon, President of Vice</para>
+ </blockquote>
+
+ <para>This General Public License does not permit incorporating your
+program into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General Public
+License instead of this License.</para>
+
+ </sect1>
+
+</appendix>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-parent-document:("fcron-doc.sgml" "book" "appendix" "")
+End:
+-->
--- /dev/null
+<!--
+Fcron documentation
+Copyright 2000-2006 Thibault Godouet <fcron@free.fr>
+Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License,
+Version 1.1 or any later version published by the Free Software
+Foundation.
+A copy of the license is included in gfdl.sgml.
+-->
+
+<!-- $Id: install.sgml,v 1.1 2006-02-05 19:25:54 thib Exp $ -->
+
+<sect1 id="install">
+ <title>How to install fcron</title>
+ <itemizedlist>
+ <listitem>
+ <para>uncompress the archive:</para>
+ <screen><prompt>bash$ </prompt><command>
+tar -xzf fcron-X.Y.Z.src.tar.gz</command></screen>
+ </listitem>
+ <listitem>
+ <para>cd to the archive directory</para>
+ <screen><prompt>bash$ </prompt><command>cd fcron-X.Y.Z</command></screen>
+ </listitem>
+ <listitem>
+ <para>run the <command>configure</command> script:</para>
+ <screen><prompt>bash$
+</prompt><command>./configure</command></screen>
+ <para>
+ <note>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The command <command>make install</command> asks
+you by default some questions you have to answer. To avoid that (which can be
+useful for automatic installers), you can use the
+<command>./configure</command>'s option <option>--with-answer-all</option>
+and/or <option>--with-boot-install</option> (see "<command>./configure</command>
+<option>--help</option>" for more details).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ You may also want to change the place where
+&fcron; will be installed: you can use the <command>configure </command>'s
+option <option>--prefix</option> to do that. For instance:
+<command>./configure</command> <option>--prefix=/usr/local</option> (default is
+prefix=/usr)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ To disable the use of
+<productname>PAM</productname>, <productname>SE Linux</productname> or &fcrondyn;, use <command>configure</command>'s
+option <option>--with-pam=no</option>, <option>--with-selinux=no</option>
+and/or <option>--with-fcrondyn=no</option>.</para>
+ </listitem>
+ <listitem>
+ <para>To debug &fcron;, you should use
+<command>configure </command>'s option <option>--with-debug</option>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ You can get info on the others
+<command>configure </command>'s options by running
+"<command>./configure</command> <option>--help</option>".
+ </para>
+ </listitem>
+ </itemizedlist>
+ </note>
+ <warning>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The <command>configure</command> script may not
+define a correct directory for the man pages and the documentation on some
+systems. You may check the values defined by <command>configure</command> and if
+necessary force a value by the options <option>--mandir</option> and
+<option>-with-docdir </option> (see the help by running
+"<command>./configure</command> <option>--help</option>").
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ If you get older &fcron;'s man-pages with
+<command>man</command> command after having upgraded, it's probably because
+&fcron; has changed its default man directory: you should remove manually the
+outdated man-pages.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <filename>Makefile</filename> has been
+designed for <application>GNU make</application>. Some other version of
+<command>make</command> may fail to use it.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </warning>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>(optional)</emphasis> check the file
+<filename>config.h</filename>, and change it if necessary (the configurable part
+is on the top of the file and clearly delimited).</para>
+ </listitem>
+
+ <listitem>
+ <para>compile:</para>
+ <screen><prompt>bash$ </prompt><command>make</command></screen>
+ </listitem>
+
+ <listitem>
+ <para>then install binaries as root:</para>
+ <screen><prompt>bash$ </prompt><command>su root</command></screen>
+ <screen><prompt>bash# </prompt><command>make install</command></screen>
+ </listitem>
+ </itemizedlist>
+ <para>You can now run <command>fcron</command> and
+<command>fcrontab</command>.</para>
+ <note>
+ <itemizedlist>
+ <listitem>
+ <para>
+ This is a <productname>POSIX</productname> conforming
+software. You must have a <productname>POSIX</productname> compiler
+(<application>gcc</application> for example) in order to compile it.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ This software has been written for
+<productname>GNU/Linux</productname> systems. If you want to port it on an other
+<productname>Unix</productname> platform (thank you if you do it), try to modify
+- if possible - only the <application>configure</application> script. Please
+send me any modifications at &email; in order to include it in future releases.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </note>
+</sect1>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-parent-document:("fcron-doc.sgml" "book" "chapter" "sect1" "")
+End:
+-->
--- /dev/null
+<!--
+Fcron documentation
+Copyright 2000-2004 Thibault Godouet <fcron@free.fr>
+Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License,
+Version 1.1 or any later version published by the Free Software
+Foundation.
+A copy of the license is included in gfdl.sgml.
+-->
+
+<!-- $Id: manpage-foot.sgml,v 1.1 2006-02-05 19:26:07 thib Exp $ -->
+
+ <refsect1>
+ <title>Voir aussi</title>
+ <simplelist>
+ <member><link linkend="fcrontab.1">&fcrontab;(1),</link></member>
+ <member><link linkend="fcrondyn.1">&fcrondyn;(1),</link></member>
+ <member><link linkend="fcrontab.5">&fcrontab;(5),</link></member>
+ <member><link linkend="fcron.conf.5">&fcron.conf;(5),</link></member>
+ <member><link linkend="fcron.8">&fcron;(8).</link></member>
+ <member>Si vous êtes en train d'apprendre à utiliser fcron, je vous
+suggère plutôt de lire la version HTML de la documentation (si ce n'est pas
+déjà ce que vous faites en ce moment ! :) ) : le contenu est le même, mais
+il est plus aisé de naviguer grâce aux hyperliens.</member>
+ </simplelist>
+ </refsect1>
+
+ <refsect1>
+ <title>Auteur</title>
+ <para>Thibault Godouet &email;</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Traduction</title>
+ <para>Alain Portal <aportal AT univ-montp2 DOT fr>, 2006.</para>
+ </refsect1>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-parent-document:("fcron-doc.sgml" "book" "chapter" "sect1" "refentry" "")
+End:
+-->
\ No newline at end of file
--- /dev/null
+<!--
+Fcron documentation
+Copyright 2000-2006 Thibault Godouet <fcron@free.fr>
+Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License,
+Version 1.1 or any later version published by the Free Software
+Foundation.
+A copy of the license is included in gfdl.sgml.
+-->
+
+<!-- $Id: readme.sgml,v 1.1 2006-02-05 19:26:35 thib Exp $ -->
+
+<sect1 id="readme">
+ <title>About fcron</title>
+ <sect2>
+ <title>What is fcron?</title>
+ <para>&Fcron; is a scheduler. It aims at replacing <application>Vixie
+Cron</application>, so it implements most of its functionalities.</para>
+ <para>But contrary to <application>Vixie Cron</application>, &fcron;
+does not need your system to be up 7 days a week, 24 hours a day: it also works
+well with systems which are not running neither all the time nor regularly
+(contrary to <application>anacrontab</application>).</para>
+ <para>In other words, &fcron; does both the job of <application>Vixie
+Cron</application> and <application>anacron</application>, but does even more
+and better :)) ...</para>
+
+ <para>To do so, &fcron; allows you to use the standard mode in which you
+tell it to execute one command at a given date and hour and to make it run a
+command according to its time of execution, which is normally the same as system
+up time. For example:
+
+ <blockquote>
+ <para>Run the task 'save /home/ directory' every 3h15 of system
+up time.</para>
+ </blockquote> and, of course, in order to make it really useful, the
+time remaining until next execution is saved each time the system is stopped.
+You can also say:
+
+ <blockquote>
+ <para>run that command once between 2am and 5am</para>
+ </blockquote> which will be done if the system is running at any
+time in this interval.</para>
+
+ <para>&Fcron; also includes a useful system of options, which can be
+applied either to every lines following the declaration or to a single line.
+Some of the supported options permit to:
+ <itemizedlist>
+ <listitem><para>run jobs one by one (fcrontab option
+&optserial;),</para></listitem>
+ <listitem><para>set the max system load average value under
+which the job should be run (fcrontab option &optlavg;),</para></listitem>
+ <listitem><para>set a nice value for a job (fcrontab option
+&optnice;),</para></listitem>
+ <listitem><para>run jobs at &fcron;'s startup if they should
+have been run during system down time (fcrontab option
+&optbootrun;),</para></listitem>
+ <listitem><para>mail user to tell him a job has not run and why
+(fcrontab option &optnoticenotrun;),</para></listitem>
+ <listitem><para>a better management of the mailing of outputs
+...</para></listitem>
+ </itemizedlist>
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>License</title>
+ <para>&Fcron; is distributed under GPL license (please read the license
+in the <link linkend="gpl">gpl</link> file).</para>
+ </sect2>
+
+ <sect2>
+ <title>Requirements</title>
+ <itemizedlist>
+ <listitem>
+ <para>a <productname>Linux/Unix system</productname></para>
+ <para>&Fcron; should work on every
+<productname>POSIX</productname> system, but it has been developed on
+<productname>Mandrake</productname> Linux (so it should work without any
+problems on <productname>Redhat</productname>).</para>
+ <para>Fcron has been reported to work correctly on:
+ </para>
+ <itemizedlist>
+ <listitem><para><productname>Linux Mandrake</productname>
+ </para></listitem>
+ <listitem><para><productname>Linux Debian 3.0</productname>
+ </para></listitem>
+ <listitem><para><productname>LFS</productname></para>
+ <para>(take a look at the <ulink
+ url="http://www.linuxfromscratch.org/blfs/">Beyond
+ LFS book</ulink> to find the installation
+ informations).</para>
+ </listitem>
+ <listitem><para><productname>FreeBSD 4.2</productname>
+ </para></listitem>
+ <listitem><para><productname>OpenBSD 2.8</productname>
+ </para></listitem>
+ <listitem><para><productname>NetBSD 2.0</productname>
+ </para></listitem>
+ <listitem>
+ <para><productname>Darwin/MacOS-X</productname></para>
+ </listitem>
+ <listitem><para><productname>Solaris 8</productname>
+ </para></listitem>
+ <listitem><para><productname>AIX 4.3.3</productname>
+ </para></listitem>
+ <listitem><para><productname>HP-UX 11.11</productname>
+ </para></listitem>
+ </itemizedlist>
+ <para>but fcron should work on other OS as well. Yet,
+ if you have troubles
+ making it work on a <productname>POSIX</productname> system, please
+ contact me at &email;.</para>
+ </listitem>
+ <listitem><para>a running <application>syslog</application> (or you
+won't have any log)</para></listitem>
+ <listitem><para>a running mail system (
+<application>sendmail</application> or <application>postfix</application> for
+example) (or users will not able to read their jobs output)
+ </para></listitem>
+ <listitem><para>(optional) a <productname>PAM</productname>
+library.</para></listitem>
+ <listitem><para>(optional) a system with a working <productname>SE Linux</productname> environment.</para></listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Compilation and installation</title>
+ <para>See the <link linkend="install">install</link> file (either install.txt
+or install.html).</para>
+ </sect2>
+
+ <sect2>
+ <title>Configuration</title>
+ <para>See the <link linkend="fcron.8">&fcron;(8)</link>, <link
+linkend="fcrontab.5">&fcrontab;(5)</link> and <link
+linkend="fcrontab.1">&fcrontab;(1)</link> manpages.</para>
+ </sect2>
+
+ <sect2>
+ <title>Bug reports, corrections, propositions...</title>
+ <para>Please send me the description of any bug you happen to encounter
+(with, even better, the corresponding patch -:) and any propositions,
+congratulations or flames at &email;</para>
+ <para>Please contact Russell Coker directly for problems about SE Linux support at &selinuxemail;, since he maintains this part of the code.</para>
+ </sect2>
+</sect1>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-parent-document:("fcron-doc.sgml" "book" "chapter" "sect1" "")
+End:
+-->
--- /dev/null
+<!--
+Fcron documentation
+Copyright 2000-2006 Thibault Godouet <fcron@free.fr>
+Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License,
+Version 1.1 or any later version published by the Free Software
+Foundation.
+A copy of the license is included in gfdl.sgml.
+-->
+
+<!-- $Id: relnotes.sgml,v 1.1 2006-02-05 19:25:50 thib Exp $ -->
+
+<sect1 id="relnotes">
+ <title>Release notes: &fcron; &version;</title>
+ <itemizedlist>
+ <listitem>
+ <para>PAM support has not been tested thoroughly. Help from a PAM
+ expert would be appreciated (to audit the PAM code in fcron, and
+ test it). You can disable PAM use in configure, using
+ "--with-pam=no".</para>
+ </listitem>
+ </itemizedlist>
+</sect1>
+
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-parent-document:("fcron-doc.sgml" "book" "chapter" "sect1" "")
+End:
+-->
--- /dev/null
+<!--
+Fcron documentation
+Copyright 2000-2006 Thibault Godouet <fcron@free.fr>
+Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License,
+Version 1.1 or any later version published by the Free Software
+Foundation.
+A copy of the license is included in gfdl.sgml.
+-->
+
+<!-- $Id: thanks.sgml,v 1.1 2006-02-05 19:25:27 thib Exp $ -->
+
+<sect1 id="thanks">
+ <title>Thanks</title>
+ <variablelist>
+ <varlistentry>
+ <term>Uwe Ohse <email>uwe@ohse.de</email></term>
+ <listitem>
+ <para>Corrected a bug concerning the signals, has reported
+security issues.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Max Heijndijk <email>cchq@wanadoo.nl</email></term>
+ <listitem>
+ <para>Has made the rpm packages.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Gabor Z. Papp <email>gzp@papp.hu</email></term>
+ <listitem>
+ <para>Helped to correct some bugs in installation process and
+reported various bugs.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Clemens Fischer <email>rabat@web.de</email></term>
+ <listitem>
+ <para>Proofread docs, reported bugs, and made some
+propositions.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Henrique de Moraes Holschuh
+<email>hmh@debian.org</email></term>
+ <listitem>
+ <para>Has worked on fcron's integration in Linux Debian system,
+reported bugs and corrected some of them, made some propositions.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Thomas Whateley <email>thomas@whateley.net</email></term>
+ <listitem>
+ <para>Has done a big part of Solaris port, implemented the
+fcron.conf file, and Vixie crontab format support.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Guy Geens <email>ggeens@iname.com</email></term>
+ <listitem>
+ <para>Fixed a nasty bug in goto_non_matching() which caused an
+endless loop (midmonthly jobs executed after the 15th of the month).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Patrick Ohly <email>Patrick.Ohly@gmx.de</email></term>
+ <listitem>
+ <para>Added fcron's option -y, -o and -l, and fcrontab's stdout
+and volatile, in order to run fcron from time to time in foreground, for
+instance in a ppp-up script.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Russell Coker <email>russell@coker.com.au</email></term>
+ <listitem>
+ <para>Helped me to secure fcron, make code clearer,
+and he wrote the patch for SE Linux support.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Alain Portal</term>
+ <listitem>
+ <para>Initial French translation of the manual pages.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</sect1>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-parent-document:("fcron-doc.sgml" "book" "chapter" "sect1" "")
+End:
+-->
--- /dev/null
+<!--
+Fcron documentation
+Copyright 2000-2006 Thibault Godouet <fcron@free.fr>
+Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License,
+Version 1.1 or any later version published by the Free Software
+Foundation.
+A copy of the license is included in gfdl.sgml.
+-->
+
+<!-- $Id: todo.sgml,v 1.1 2006-02-05 19:25:58 thib Exp $ -->
+
+ <sect1 id="todo">
+ <title>Todo</title>
+ <para>Here are some things that should be done ... Note that some of these
+ entries are just some ideas, which <emphasis>may</emphasis> be done in
+ the long run.</para>
+ <para>If you see something you'd really like to see implemented here, feel
+ free to send me a mail: it may make me move it to the top of my to-do list ;) .
+ </para>
+ <para>If you plan to help me, please send a mail at &email; to prevent two
+ people from doing the same thing. You can send me some propositions as
+ well, or ask me to move something to the top of the heap ;) .</para>
+ <sect2>
+ <title>High priority</title>
+ <itemizedlist>
+ <listitem>
+ <para>test the fix for empty mails on non linux systems (solaris seems ok, feedback on BSD?) (starting from fcron 2.9.7 -- no complain so far, so fixed?)</para>
+ </listitem>
+ <listitem>
+ <para>bug fix: what happens if the grand-child cannot be forked or cannot run the job in job.c? + better loop to read/write the pid of grand-child from/by the child (fcron freezes if the filesystem on which it operates has no space left? (cannot reproduce it on my linux system)</para>
+ </listitem>
+ <listitem>
+ <para>set TZ env. var. for jobs for which option tz is used.</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ <sect2>
+ <title>Low priority</title>
+ <itemizedlist>
+ <listitem>
+ <para>code cleaning: create a .c/.h file for data structures
+ (file/line lists, serial queue, lavg list, exe list),
+ and work with them only through functions/macros.
+ + secure equivalent to str[n]{cat|copy|...}</para>
+ <para>Note: may introduce bugs, so it will be done in fcron 3.1.x, and needs to be tested thoroughly..</para>
+ </listitem>
+ <listitem>
+ <para>Mem footprint reduction: use an/some union(s) in CL struct.</para>
+ </listitem>
+ <listitem>
+ <para>For environment settings, make a var substitution.</para>
+ </listitem>
+ <listitem>
+ <para>add a return code for jobs which would mean that they
+ should not be run again (in case of an error, etc...).</para>
+ </listitem>
+ <listitem>
+ <para>Use directory notifications (FAM), and support a fcrontab
+ and a cron.d as Vixie cron does (directly included in fcron itself, not thanks to a script as now).</para>
+ </listitem>
+ <listitem>
+ <para>PAM support (included in fcron, but needs more tests by
+ people using PAM - not implemented in fcrondyn: is it needed
+ in fcrondyn anyway?)</para>
+ </listitem>
+ <listitem>
+ <para>support for per user serial queue (especially for root)</para>
+ </listitem>
+ <listitem>
+ <para>use readline (if available) for fcrondyn.</para>
+ </listitem>
+ <listitem>
+ <para>add a mailsubject option, for custom mail subjects (for instance, in case of a job containing something secret -- password, etc -- in the command line).</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ <sect2>
+ <title>Ideas</title>
+ <itemizedlist>
+ <listitem>
+ <para>add a system of modules: at startup, fcron loads some
+ modules (.so files). Then, when fcron should run the job, it
+ calls a function of the module, and let it manage the job
+ (threads?). (do linux dlopen(), etc exist on other systems?
+ - yes: thanks Harring ;) dlopen exists on all POSIX system -
+ even windoze - abait it does not use the same insterface of
+ function calls. But it can be easily implemented to port to
+ another system.).</para>
+ </listitem>
+ <listitem>
+ <para>(related to the system of modules? create a kind of
+ dependencies?) Add a way to run a job only if a command
+ returns true. It would permit, for instance, to run some jobs
+ on a laptop only if it is on AC power.</para>
+ <para>and depending on the return value of the command, cancel
+ the execution, or wait x seconds before trying again, etc.
+ In this case, needs change the way the jobs are queued?</para>
+ </listitem>
+ <listitem>
+ <para>add an option/module to prevent fcron from running a job if the
+ system is running on battery (anacron does it?)</para>
+ </listitem>
+ <listitem>
+ <para>Add a way to stop a job (SIGSTOP) if the lavg gets to high,
+ and restart it (SIGCONT) when the lavg has decreased.</para>
+ </listitem>
+ <listitem>
+ <para>Add a timeout for task completion: if a task takes more
+ than a specified timeout, then start another script with the
+ initial task PID as argument. That would allow a kill with
+ different signals (-HUP, -TERM -STOP, .... or any other action
+ like sending a mail to sysadmin to alert him/her that a task
+ is taking too much time and that he has to have a look at it.)
+ (add an option to specify the cmd, and combine w/ option until)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ </sect1>
+
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-parent-document:("fcron-doc.sgml" "book" "chapter" "sect1" "")
+End:
+-->
+
\ No newline at end of file