removed old files and added new dockerfile and conf
This commit is contained in:
parent
3115a349da
commit
f8e56e68e1
154
Dockerfile
154
Dockerfile
|
|
@ -1,102 +1,74 @@
|
||||||
FROM debian:jessie
|
FROM alpine:latest
|
||||||
|
|
||||||
# mysql before installation configuration
|
MAINTAINER diego@passbolt.com
|
||||||
RUN export DEBIAN_FRONTEND="noninteractive" \
|
|
||||||
&& echo "mysql-server mysql-server/root_password password root" | debconf-set-selections \
|
|
||||||
&& echo "mysql-server mysql-server/root_password_again password root" | debconf-set-selections
|
|
||||||
|
|
||||||
# debian packages installation
|
ENV PASSBOLT_VERSION 1.4.0
|
||||||
RUN apt-get clean && apt-get update && apt-get install -y \
|
ENV PASSBOLT_URL https://github.com/passbolt/passbolt_api/archive/v${PASSBOLT_VERSION}.tar.gz
|
||||||
# persistent &runtime deps. \
|
|
||||||
ca-certificates curl libpcre3 librecode0 libsqlite3-0 libxml2 --no-install-recommends \
|
|
||||||
# unix tools \
|
|
||||||
nano wget openssh-client cron sendmail \
|
|
||||||
# versioning & package manager \
|
|
||||||
git npm \
|
|
||||||
# phpize dependencies \
|
|
||||||
autoconf file g++ gcc libc-dev make pkg-config re2c \
|
|
||||||
# persistance
|
|
||||||
redis-server mysql-server-5.5 \
|
|
||||||
# php \
|
|
||||||
php5-json php5-cli php5-common \
|
|
||||||
php5-curl php5-dev php5-gd php5-mcrypt \
|
|
||||||
php5-mysql php5-xdebug php5-xsl php5-intl \
|
|
||||||
# memchached \
|
|
||||||
memcached php5-memcached \
|
|
||||||
# apache \
|
|
||||||
apache2 apache2-utils libapache2-mod-php5 \
|
|
||||||
# gnupg dependency \
|
|
||||||
libgpgme11-dev \
|
|
||||||
# pear \
|
|
||||||
php-pear \
|
|
||||||
# Commented until the following bug is fixed : https://github.com/docker/hub-feedback/issues/556 \
|
|
||||||
#&& apt-get clean \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# Configure the user www-data environment
|
ARG BASE_PHP_DEPS="php5-curl \
|
||||||
RUN mkdir /home/www-data/ \
|
php5-common \
|
||||||
&& chown www-data:www-data /home/www-data/ \
|
php5-gd \
|
||||||
&& usermod -d /home/www-data www-data
|
php5-intl \
|
||||||
|
php5-json \
|
||||||
|
php5-mcrypt \
|
||||||
|
php5-memcache \
|
||||||
|
php5-mysql \
|
||||||
|
php5-xsl \
|
||||||
|
php5-fpm \
|
||||||
|
php5-phar \
|
||||||
|
php5-xml \
|
||||||
|
php5-openssl \
|
||||||
|
php5-zlib \
|
||||||
|
php5-ctype \
|
||||||
|
php5-pdo \
|
||||||
|
php5-pdo_mysql \
|
||||||
|
php5-pear"
|
||||||
|
|
||||||
# Configure node and install grunt
|
ARG PHP_GNUPG_DEPS="php5-dev \
|
||||||
# On debian they choose to rename node in nodejs, some tools try to access nodejs by using the commande noe.
|
make \
|
||||||
RUN ln -s /usr/bin/nodejs /usr/bin/node \
|
gcc \
|
||||||
# install grunt
|
g++ \
|
||||||
&& npm install -g grunt-cli
|
libc-dev \
|
||||||
|
pkgconfig \
|
||||||
|
re2c \
|
||||||
|
gpgme-dev \
|
||||||
|
autoconf \
|
||||||
|
file"
|
||||||
|
|
||||||
# Apache2 SSL
|
RUN apk update &&\
|
||||||
RUN mkdir /etc/apache2/ssl \
|
apk add $BASE_PHP_DEPS \
|
||||||
&& openssl req -x509 -nodes -days 365 -new -newkey rsa:2048 -subj "/C=US/ST=Denial/L=Goa/O=Dis/CN=www.passbolt.com" -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt \
|
bash \
|
||||||
&& chmod 600 /etc/apache2/ssl/* \
|
ca-certificates \
|
||||||
&& a2enmod ssl
|
curl \
|
||||||
|
tar \
|
||||||
|
libpcre32 \
|
||||||
|
recode \
|
||||||
|
libxml2 \
|
||||||
|
gpgme \
|
||||||
|
gnupg1 \
|
||||||
|
mysql-client \
|
||||||
|
openssl \
|
||||||
|
nginx
|
||||||
|
|
||||||
# Install and configure gnupg
|
RUN apk add $PHP_GNUPG_DEPS && \
|
||||||
RUN pecl install gnupg \
|
#https://bugs.alpinelinux.org/issues/5378
|
||||||
&& echo "extension=gnupg.so;" > /etc/php5/mods-available/gnupg.ini \
|
sed -i "s/ -n / /" $(which pecl) && \
|
||||||
&& ln -s /etc/php5/mods-available/gnupg.ini /etc/php5/apache2/conf.d/20-gnupg.ini \
|
pecl install gnupg && \
|
||||||
&& ln -s /etc/php5/mods-available/gnupg.ini /etc/php5/cli/conf.d/20-gnupg.ini \
|
echo "extension=gnupg.so" > /etc/php5/conf.d/gnupg.ini && \
|
||||||
# configure the user www-data env to work with gnupg \
|
apk del $PHP_GNUPG_DEPS
|
||||||
&& mkdir /home/www-data/.gnupg \
|
|
||||||
&& chown www-data:www-data /home/www-data/.gnupg \
|
|
||||||
&& chmod 0777 /home/www-data/.gnupg
|
|
||||||
|
|
||||||
# Configure apache
|
RUN curl -sS https://getcomposer.org/installer | php && \
|
||||||
ADD /server-conf/apache/passbolt.conf /etc/apache2/sites-available/passbolt.conf
|
mv composer.phar /usr/local/bin/composer
|
||||||
ADD /server-conf/apache/000-default.conf /etc/apache2/sites-available/000-default.conf
|
|
||||||
|
|
||||||
RUN rm -f /etc/apache2/sites-enabled/* \
|
RUN mkdir /var/www/passbolt && curl -sSL $PASSBOLT_URL | \
|
||||||
&& rm -fr /var/www/html \
|
tar zxf - -C /var/www/passbolt --strip-components 1 && \
|
||||||
&& a2enmod proxy \
|
chown -R nginx:nginx /var/www/passbolt && \
|
||||||
&& a2enmod proxy_http \
|
chmod -R +w /var/www/passbolt/app/tmp && \
|
||||||
&& a2enmod rewrite \
|
chmod +w /var/www/passbolt/app/webroot/img/public
|
||||||
&& a2ensite passbolt \
|
|
||||||
&& a2ensite 000-default.conf
|
|
||||||
|
|
||||||
# Configure php
|
COPY conf/passbolt.conf /etc/nginx/conf.d/default.conf
|
||||||
RUN echo "memory_limit=256M" > /etc/php5/apache2/conf.d/20-memory-limit.ini \
|
COPY bin/passbolt_start.sh /passbolt_start.sh
|
||||||
&& echo "memory_limit=256M" > /etc/php5/cli/conf.d/20-memory-limit.ini
|
|
||||||
|
|
||||||
# Install composer
|
EXPOSE 80 443
|
||||||
RUN curl -sS https://getcomposer.org/installer | php \
|
|
||||||
&& mv composer.phar /usr/local/bin/composer
|
|
||||||
|
|
||||||
# Special hack for macosx, to let www-data able to write on mounted volumes.
|
CMD ["/passbolt_start.sh"]
|
||||||
# See docker bug: https://github.com/boot2docker/boot2docker/issues/581.
|
|
||||||
RUN usermod -u 1000 www-data \
|
|
||||||
&& usermod -a -G staff www-data \
|
|
||||||
&& chown -Rf www-data:www-data /var/www/
|
|
||||||
|
|
||||||
# Generate the gpg server key
|
|
||||||
ADD /conf/gpg_server_key_public.key /home/www-data/gpg_server_key_public.key
|
|
||||||
ADD /conf/gpg_server_key_private.key /home/www-data/gpg_server_key_private.key
|
|
||||||
|
|
||||||
# fcron
|
|
||||||
ADD ./fcron-3.2.0 /usr/local/fcron
|
|
||||||
RUN cd /usr/local/fcron; ./configure --with-editor=/usr/bin/nano \
|
|
||||||
&& cd /usr/local/fcron; make \
|
|
||||||
&& cd /usr/local/fcron; make install
|
|
||||||
|
|
||||||
ADD /entry-point.sh /entry-point.sh
|
|
||||||
RUN chmod 0755 /entry-point.sh
|
|
||||||
|
|
||||||
CMD ["bash", "/entry-point.sh"]
|
|
||||||
|
|
|
||||||
174
README.md
174
README.md
|
|
@ -1,62 +1,144 @@
|
||||||
# PASSBOLT DEBIAN DOCKER CONTAINER
|
# Passbolt docker official image
|
||||||
|

|
||||||
|
|
||||||
ATTENTION : THIS IS A DEMO CONTAINER. DO NOT USE IT IN PRODUCTION.
|
# What is Passbolt?
|
||||||
|
|
||||||
How to use it
|
Passbolt is a free and open source password manager that allows team members to
|
||||||
-------------
|
store and share credentials securely.
|
||||||
1) First, download passbolt source code from git.
|
|
||||||
```
|

|
||||||
git clone https://github.com/passbolt/passbolt.git
|
|
||||||
|
# Build this image
|
||||||
|
|
||||||
|
Inside the repo directory:
|
||||||
|
|
||||||
|
`$ docker build . -t passbolt:1.4.0-alpine`
|
||||||
|
|
||||||
|
# How to use this image?
|
||||||
|
|
||||||
|
## Start passbolt instance
|
||||||
|
|
||||||
|
Passbolt requires mysql to be running. In this example we will be using mysql official docker image
|
||||||
|
with the default passbolt credentials.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker run -e MYSQL_ROOT_PASSWORD=<your_root_password> \
|
||||||
|
-e MYSQL_DATABASE=passbolt \
|
||||||
|
-e MYSQL_USER=passbolt \
|
||||||
|
-e MYSQL_PASSWORD=P4ssb0lt \
|
||||||
|
mysql
|
||||||
```
|
```
|
||||||
|
|
||||||
2) Then, configure the container.
|
Then you can start passbolt just providing the database container ip in the `db_host` environment variable.
|
||||||
There is a configuration file located in /conf/conf.sh
|
|
||||||
|
|
||||||
It contains the following options :
|
`$ docker run -e db_host=<mysql_container_ip> passbolt:1.4.0-alpine`
|
||||||
|
|
||||||
- PASSBOLT_DIR : path to passbolt source code.
|
Once the process is done you just need to point your browser to http://passbolt_container_ip
|
||||||
- MYSQL_HOST : mysql host. Keep it as 'localhost' to let the container handle the database.
|
|
||||||
- MYSQL_ROOT_PASSWORD : root password of mysql. It is only useful if MYSQL_HOST is set to localhost.
|
|
||||||
- MYSQL_USERNAME : valid username for the database.
|
|
||||||
- MYSQL_PASSWORD : valid password for the database.
|
|
||||||
- MYSQL_DATABASE : name of the database to be used.
|
|
||||||
- ADMIN_USERNAME : email of the admin user.
|
|
||||||
- ADMIN_FIRST_NAME : first name of the admin user.
|
|
||||||
- ADMIN_LAST_NAME : last name of the admin user.
|
|
||||||
|
|
||||||
Enter the values corresponding to your settings. The most important setting is PASSBOLT_DIR. You can keep the default values for the rest.
|
# Configure passbolt
|
||||||
|
|
||||||
3) Generate the gpg server key.
|
## Environment variables
|
||||||
```
|
|
||||||
cd /path/to/docker/files
|
Passbolt docker image provides several environment variables to configure different aspects:
|
||||||
./bin/generate_gpg_server_key.sh
|
|
||||||
|
### GnuPG key creation related variables
|
||||||
|
|
||||||
|
* key_length: gpg desired key length
|
||||||
|
* subkey_length: gpg desired subkey length
|
||||||
|
* key_name: key owner name
|
||||||
|
* key_email: key owner email address
|
||||||
|
* key_expiration: key expiration date
|
||||||
|
|
||||||
|
### App file variables
|
||||||
|
|
||||||
|
* fingerprint: GnuPG fingerprint
|
||||||
|
* registration: defines if users can register
|
||||||
|
* ssl
|
||||||
|
|
||||||
|
### Core file variables
|
||||||
|
|
||||||
|
* default_salt
|
||||||
|
* default_seed
|
||||||
|
* default_url: url of the passbolt installation
|
||||||
|
|
||||||
|
### Database variables
|
||||||
|
|
||||||
|
* db_host: database hostname This param has to be specified either using env var or in database.php
|
||||||
|
* db_user: database username (defaults to passbolt)
|
||||||
|
* db_pass: database password (defaults to P4ssb0lt)
|
||||||
|
* db_name: database name (defaults to passbolt)
|
||||||
|
|
||||||
|
## Advanced configuration
|
||||||
|
|
||||||
|
What it you have your gpg keys and you want to setup a more complex configuration for passbolt?
|
||||||
|
It it possible to mount the desired configuration files as volumes.
|
||||||
|
|
||||||
|
### Configuration files subject to be persisted:
|
||||||
|
|
||||||
|
* /var/www/passbolt/app/Config/app.php
|
||||||
|
* /var/www/passbolt/app/Config/core.php
|
||||||
|
* /var/www/passbolt/app/Config/database.php
|
||||||
|
* /var/www/passbolt/app/Config/email.php
|
||||||
|
* /var/www/passbolt/app/Config/gpg/serverkey.asc
|
||||||
|
* /var/www/passbolt/app/Config/gpg/serverkey.private.asc
|
||||||
|
|
||||||
|
### SSL certificate files
|
||||||
|
|
||||||
|
If you have your own ssl certificate you can mount it on the following paths
|
||||||
|
|
||||||
|
* /etc/ssl/certs/certificate.crt
|
||||||
|
* /etc/ssl/certs/certificate.key
|
||||||
|
|
||||||
|
# Examples
|
||||||
|
|
||||||
|
## Automated setup
|
||||||
|
|
||||||
|
In the following example we launch passbolt with the defaults enabled usind mysql official docker container to store passbolt data.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker run -e MYSQL_ROOT_PASSWORD=c0mplexp4ss \
|
||||||
|
-e MYSQL_DATABASE=passbolt \
|
||||||
|
-e MYSQL_USER=passbolt \
|
||||||
|
-e MYSQL_PASSWORD=P4ssb0lt \
|
||||||
|
mysql
|
||||||
```
|
```
|
||||||
|
|
||||||
4) (optional) Configure the smtp server.
|
Once mysql container is running we should extract its ip address we assume 172.17.0.2 for this example
|
||||||
|
|
||||||
In the PASSBOLT_DIR, edit the file app/Config/email.php.
|
`$ docker run -e db_host=172.17.0.2 passbolt:1.4.0-alpine`
|
||||||
|
|
||||||
If you don't configure a smtp server, emails notifications won't be sent. User won't be able to finalize their registration.
|
Point your browser to the passbolt container ip
|
||||||
|
|
||||||
5) Finally, you can build and run the container.
|
## Advanced configuration
|
||||||
```
|
|
||||||
cd /path/to/docker/files
|
|
||||||
docker build -t passbolt_debian .
|
|
||||||
./launch-container.sh
|
|
||||||
```
|
|
||||||
If a smtp server has been configured you will receive a registration email at the email you defined in the conf.sh file.
|
|
||||||
|
|
||||||
If no smtp server has been configured, you can still finalize the registration process. Take a look at the end of the docker logs,
|
In the following example we launch passbolt with a customized setup mounting and persisting configuration files. We also make use of
|
||||||
you will find the admin user registration link.
|
mysql official docker container to store passbolt data.
|
||||||
```
|
|
||||||
docker logs passbolt | awk '/The user has been registered with success/{print $0}'
|
```bash
|
||||||
|
$ docker run -e MYSQL_ROOT_PASSWORD=c0mplexp4ss \
|
||||||
|
-e MYSQL_DATABASE=passbolt \
|
||||||
|
-e MYSQL_USER=passbolt \
|
||||||
|
-e MYSQL_PASSWORD=P4ssb0lt \
|
||||||
|
mysql
|
||||||
```
|
```
|
||||||
|
|
||||||
Behavior
|
Using docker inspect or any other method you can get the ip address of the mysql container, we will use 172.17.0.2 in this example.
|
||||||
--------
|
|
||||||
By default the container will create a new database and use it to install passbolt.
|
Once this container is running and you have the mysql ip address we run passbolt container mounting all configuration files stored
|
||||||
However, in case an external database is provided in the settings, it will try to use it.
|
under a example conf directory in $PWD
|
||||||
A few consideration :
|
|
||||||
- There should be a valid username, password and database on the mysql server.
|
```bash
|
||||||
- If the database exists but without passbolt installed, then passbolt will be installed normally.
|
$ docker run -v $PWD/conf/app.php:/var/www/passbolt/app/Config/app.php \
|
||||||
- If the database exists and already has a passbolt installed, then no db installation will be done and the existing data will be kept.
|
-v $PWD/conf/core.php:/var/www/passbolt/app/Config/core.php \
|
||||||
|
-v $PWD/conf/database.php:/var/www/passbolt/app/Config/database.php \
|
||||||
|
-v $PWD/conf/email.php:/var/www/passbolt/app/Config/email.php \
|
||||||
|
-v $PWD/conf/private.asc:/var/www/passbolt/app/Config/gpg/serverkey.private.asc \
|
||||||
|
-v $PWD/conf/public.asc:/var/www/passbolt/app/Config/gpg/serverkey.asc \
|
||||||
|
passbolt:1.4.0-alpine
|
||||||
|
```
|
||||||
|
|
||||||
|
Point your browser to the passbolt container ip
|
||||||
|
|
||||||
|
# Requirements:
|
||||||
|
|
||||||
|
* mysql >= 5.6
|
||||||
|
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
DIRNAME=`dirname $0`/..
|
|
||||||
gpg --batch --armor --gen-key $DIRNAME/conf/gpg_server_key_settings.conf
|
|
||||||
mv $DIRNAME/gpg_server_key_public.key $DIRNAME/conf
|
|
||||||
mv $DIRNAME/gpg_server_key_private.key $DIRNAME/conf
|
|
||||||
|
|
@ -0,0 +1,155 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -eo pipefail
|
||||||
|
|
||||||
|
gpg_private_key=/var/www/passbolt/app/Config/gpg/serverkey.private.asc
|
||||||
|
gpg_public_key=/var/www/passbolt/app/Config/gpg/serverkey.asc
|
||||||
|
gpg=$(which gpg)
|
||||||
|
|
||||||
|
core_config='/var/www/passbolt/app/Config/core.php'
|
||||||
|
db_config='/var/www/passbolt/app/Config/database.php'
|
||||||
|
app_config='/var/www/passbolt/app/Config/app.php'
|
||||||
|
ssl_key='/etc/ssl/certs/certificate.key'
|
||||||
|
ssl_cert='/etc/ssl/certs/certificate.crt'
|
||||||
|
|
||||||
|
gpg_gen_key() {
|
||||||
|
|
||||||
|
su -m -c "$gpg --batch --gen-key <<EOF
|
||||||
|
Key-Type: 1
|
||||||
|
Key-Length: ${key_length:-2048}
|
||||||
|
Subkey-Type: 1
|
||||||
|
Subkey-Length: ${subkey_length:-2048}
|
||||||
|
Name-Real: ${key_name:-Passbolt default user}
|
||||||
|
Name-Email: ${key_email:-passbolt@yourdomain.com}
|
||||||
|
Expire-Date: ${key_expiration:-0}
|
||||||
|
%commit
|
||||||
|
EOF" -ls /bin/bash nginx
|
||||||
|
|
||||||
|
su -m -c "$gpg --armor --export-secret-keys $key_email > $gpg_private_key" -ls /bin/bash nginx
|
||||||
|
su -m -c "$gpg --armor --export $key_email > $gpg_public_key" -ls /bin/bash nginx
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
gpg_import_key() {
|
||||||
|
|
||||||
|
su -m -c "$gpg --import $gpg_private_key" -ls /bin/bash nginx
|
||||||
|
su -m -c "$gpg --import $gpg_public_key" -ls /bin/bash nginx
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
core_setup() {
|
||||||
|
#Env vars:
|
||||||
|
# salt
|
||||||
|
# cipherseed
|
||||||
|
# url
|
||||||
|
|
||||||
|
local default_salt='DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi'
|
||||||
|
local default_seed='76859309657453542496749683645'
|
||||||
|
local default_url='example.com'
|
||||||
|
|
||||||
|
cp $core_config{.default,}
|
||||||
|
sed -i s:$default_salt:${salt:-$default_salt}:g $core_config
|
||||||
|
sed -i s:$default_seed:${cipherseed:-$default_seed}:g $core_config
|
||||||
|
sed -i s:$default_url:${url:-$default_url}:g $core_config
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
db_setup() {
|
||||||
|
#Env vars:
|
||||||
|
# db_host
|
||||||
|
# db_user
|
||||||
|
# db_pass
|
||||||
|
# db_name
|
||||||
|
|
||||||
|
local default_host='localhost'
|
||||||
|
local default_user='user'
|
||||||
|
local default_pass='password'
|
||||||
|
local default_db='database_name'
|
||||||
|
|
||||||
|
cp $db_config{.default,}
|
||||||
|
sed -i s:$default_host:${db_host:-db}:g $db_config
|
||||||
|
sed -i s:$default_user:${db_user:-passbolt}:g $db_config
|
||||||
|
sed -i s:$default_pass\',:${db_pass:-P4ssb0lt}\',:g $db_config
|
||||||
|
sed -i s:$default_db:${db_name:-passbolt}:g $db_config
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
app_setup() {
|
||||||
|
#Env vars:
|
||||||
|
# fingerprint
|
||||||
|
# registration
|
||||||
|
# ssl
|
||||||
|
|
||||||
|
local default_home='/home/www-data/.gnupg'
|
||||||
|
local default_public_key='unsecure.key'
|
||||||
|
local default_private_key='unsecure_private.key'
|
||||||
|
local default_fingerprint='2FC8945833C51946E937F9FED47B0811573EE67E'
|
||||||
|
local default_ssl='force'
|
||||||
|
local default_registration='public'
|
||||||
|
local gpg_home='/var/lib/nginx/.gnupg'
|
||||||
|
local auto_fingerprint=$(su -m -c "$gpg --fingerprint |grep fingerprint| awk '{for(i=4;i<=NF;++i)printf \$i}'" -ls /bin/bash nginx)
|
||||||
|
|
||||||
|
cp $app_config{.default,}
|
||||||
|
sed -i s:$default_home:$gpg_home:g $app_config
|
||||||
|
sed -i s:$default_public_key:serverkey.asc:g $app_config
|
||||||
|
sed -i s:$default_private_key:serverkey.private.asc:g $app_config
|
||||||
|
sed -i s:$default_fingerprint:${fingerprint:-$auto_fingerprint}:g $app_config
|
||||||
|
sed -i "/force/ s:true:${ssl:-true}:" $app_config
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
gen_ssl_cert() {
|
||||||
|
|
||||||
|
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \
|
||||||
|
-subj "/C=FR/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" \
|
||||||
|
-keyout $ssl_key -out $ssl_cert
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
install() {
|
||||||
|
local database=${db_host:-$(grep -m1 -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' $db_config)}
|
||||||
|
echo $database
|
||||||
|
tables=$(mysql -u passbolt -h $database -p -BN -e "SHOW TABLES FROM passbolt" -p${db_pass:-P4ssb0lt} |wc -l)
|
||||||
|
|
||||||
|
if [ $tables -eq 0 ]; then
|
||||||
|
su -c "/var/www/passbolt/app/Console/cake install --send-anonymous-statistics true --no-admin" -ls /bin/bash nginx
|
||||||
|
else
|
||||||
|
echo "Enjoy! ☮"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
php_fpm_setup() {
|
||||||
|
sed -i '/^user\s/ s:nobody:nginx:g' /etc/php5/php-fpm.conf
|
||||||
|
sed -i '/^group\s/ s:nobody:nginx:g' /etc/php5/php-fpm.conf
|
||||||
|
cp /etc/php5/php-fpm.conf /etc/php5/fpm.d/www.conf
|
||||||
|
sed -i '/^include\s/ s:^:#:' /etc/php5/fpm.d/www.conf
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ ! -f $gpg_private_key ] || [ ! -f $gpg_public_key ]; then
|
||||||
|
gpg_gen_key
|
||||||
|
else
|
||||||
|
gpg_import_key
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f $core_config ]; then
|
||||||
|
core_setup
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f $db_config ]; then
|
||||||
|
db_setup
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f $app_config ]; then
|
||||||
|
app_setup
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f $ssl_key ] && [ ! -f $ssl_cert ]; then
|
||||||
|
gen_ssl_cert
|
||||||
|
fi
|
||||||
|
|
||||||
|
php_fpm_setup
|
||||||
|
|
||||||
|
install
|
||||||
|
|
||||||
|
php-fpm5
|
||||||
|
nginx -g "pid /tmp/nginx.pid; daemon off;"
|
||||||
17
conf/conf.sh
17
conf/conf.sh
|
|
@ -1,17 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Passbolt directory.
|
|
||||||
PASSBOLT_DIR=~/projects/passbolt_for_docker_debian
|
|
||||||
|
|
||||||
# MySQL configuration.
|
|
||||||
MYSQL_HOST=localhost
|
|
||||||
# Only necessary if we use the local database.
|
|
||||||
MYSQL_ROOT_PASSWORD=rootpassword
|
|
||||||
MYSQL_USERNAME=passbolt
|
|
||||||
MYSQL_PASSWORD=password123
|
|
||||||
MYSQL_DATABASE=passbolt
|
|
||||||
|
|
||||||
# Admin settings.
|
|
||||||
ADMIN_USERNAME=admin@passbolt.com
|
|
||||||
ADMIN_FIRST_NAME=Admin
|
|
||||||
ADMIN_LAST_NAME=Admin
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
Key-Type: RSA
|
|
||||||
Key-Length: 2048
|
|
||||||
Subkey-Type: RSA
|
|
||||||
Subkey-Length: 2048
|
|
||||||
Name-Real: Passbolt Docker Server Key
|
|
||||||
Name-Comment: Passbolt Docker Server Key
|
|
||||||
Name-Email: info@passbolt.com
|
|
||||||
Expire-Date: 0
|
|
||||||
%pubring gpg_server_key_public.key
|
|
||||||
%secring gpg_server_key_private.key
|
|
||||||
%commit
|
|
||||||
%echo Your gpg passbolt server key has been generated
|
|
||||||
|
|
@ -0,0 +1,110 @@
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
|
||||||
|
client_body_buffer_size 100K;
|
||||||
|
client_header_buffer_size 1k;
|
||||||
|
client_max_body_size 100k;
|
||||||
|
large_client_header_buffers 2 1k;
|
||||||
|
|
||||||
|
client_body_timeout 10;
|
||||||
|
client_header_timeout 10;
|
||||||
|
keepalive_timeout 5 5;
|
||||||
|
send_timeout 10;
|
||||||
|
|
||||||
|
root /var/www/passbolt;
|
||||||
|
|
||||||
|
# X-Frame-Options is to prevent from clickJacking attack
|
||||||
|
add_header X-Frame-Options SAMEORIGIN;
|
||||||
|
|
||||||
|
# disable content-type sniffing on some browsers.
|
||||||
|
add_header X-Content-Type-Options nosniff;
|
||||||
|
|
||||||
|
# This header enables the Cross-site scripting (XSS) filter
|
||||||
|
add_header X-XSS-Protection "1; mode=block";
|
||||||
|
|
||||||
|
# This will enforce HTTP browsing into HTTPS and avoid ssl stripping attack
|
||||||
|
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
|
||||||
|
|
||||||
|
## Only GET, Post, PUT are allowed##
|
||||||
|
if ($request_method !~ ^(GET|PUT|POST)$ ) {
|
||||||
|
return 444;
|
||||||
|
}
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ /index.php?$args;
|
||||||
|
index index.php;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ \.php$ {
|
||||||
|
fastcgi_index index.php;
|
||||||
|
fastcgi_pass 127.0.0.1:9000;
|
||||||
|
fastcgi_split_path_info ^(.+\.php)(.+)$;
|
||||||
|
include fastcgi_params;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~* \.(jpe?g|woff|woff2|ttf|gif|png|bmp|ico|css|js|json|pdf|zip|htm|html|docx?|xlsx?|pptx?|txt|wav|swf|svg|avi|mp\d)$ {
|
||||||
|
access_log off;
|
||||||
|
log_not_found off;
|
||||||
|
try_files $uri /app/webroot/$uri /index.php?$args;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 443;
|
||||||
|
|
||||||
|
ssl on;
|
||||||
|
ssl_certificate /etc/ssl/certs/certificate.crt;
|
||||||
|
ssl_certificate_key /etc/ssl/certs/certificate.key;
|
||||||
|
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
|
||||||
|
ssl_prefer_server_ciphers on;
|
||||||
|
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
|
||||||
|
ssl_session_tickets off;
|
||||||
|
ssl_stapling on;
|
||||||
|
ssl_stapling_verify on;
|
||||||
|
resolver 8.8.8.8 8.8.4.4 valid=300s;
|
||||||
|
resolver_timeout 5s;
|
||||||
|
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
|
||||||
|
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
|
||||||
|
add_header X-Frame-Options DENY;
|
||||||
|
add_header X-Content-Type-Options nosniff;
|
||||||
|
|
||||||
|
root /var/www/passbolt;
|
||||||
|
|
||||||
|
# X-Frame-Options is to prevent from clickJacking attack
|
||||||
|
add_header X-Frame-Options SAMEORIGIN;
|
||||||
|
|
||||||
|
# disable content-type sniffing on some browsers.
|
||||||
|
add_header X-Content-Type-Options nosniff;
|
||||||
|
|
||||||
|
# This header enables the Cross-site scripting (XSS) filter
|
||||||
|
add_header X-XSS-Protection "1; mode=block";
|
||||||
|
|
||||||
|
# This will enforce HTTP browsing into HTTPS and avoid ssl stripping attack
|
||||||
|
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
|
||||||
|
|
||||||
|
## Only GET, Post, PUT are allowed##
|
||||||
|
if ($request_method !~ ^(GET|PUT|POST)$ ) {
|
||||||
|
return 444;
|
||||||
|
}
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ /index.php?$args;
|
||||||
|
index index.php;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ \.php$ {
|
||||||
|
fastcgi_index index.php;
|
||||||
|
fastcgi_pass 127.0.0.1:9000;
|
||||||
|
fastcgi_split_path_info ^(.+\.php)(.+)$;
|
||||||
|
include fastcgi_params;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~* \.(jpe?g|woff|woff2|ttf|gif|png|bmp|ico|css|js|json|pdf|zip|htm|html|docx?|xlsx?|pptx?|txt|wav|swf|svg|avi|mp\d)$ {
|
||||||
|
access_log off;
|
||||||
|
log_not_found off;
|
||||||
|
try_files $uri /app/webroot/$uri /index.php?$args;
|
||||||
|
}
|
||||||
|
}
|
||||||
137
entry-point.sh
137
entry-point.sh
|
|
@ -1,137 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
########################################################
|
|
||||||
## Configure Mysql
|
|
||||||
########################################################
|
|
||||||
|
|
||||||
IS_MYSQL_LOCAL=1
|
|
||||||
if [ $MYSQL_HOST != "localhost" ]; then
|
|
||||||
IS_MYSQL_LOCAL=0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If Mysql is local (no persistence), we reset everything and create the database.
|
|
||||||
if [ $IS_MYSQL_LOCAL == 1 ]; then
|
|
||||||
echo "using local mysql"
|
|
||||||
echo "Resetting root password, and create user ${MYSQL_USERNAME}"
|
|
||||||
# Start mysql
|
|
||||||
service mysql start
|
|
||||||
# Change password of database
|
|
||||||
mysql --host=localhost --user=root --password=root << EOSQL
|
|
||||||
SET @@SESSION.SQL_LOG_BIN=0;
|
|
||||||
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('${MYSQL_ROOT_PASSWORD}');
|
|
||||||
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION ;
|
|
||||||
DROP DATABASE IF EXISTS test ;
|
|
||||||
FLUSH PRIVILEGES ;
|
|
||||||
EOSQL
|
|
||||||
|
|
||||||
# Create the passbolt database
|
|
||||||
echo "Create database ${MYSQL_DATABASE}"
|
|
||||||
mysql -u "root" --password="${MYSQL_ROOT_PASSWORD}" -e "create database ${MYSQL_DATABASE}"
|
|
||||||
echo "Create user ${MYSQL_USERNAME} and give access to ${MYSQL_DATABASE}"
|
|
||||||
mysql -u "root" --password="${MYSQL_ROOT_PASSWORD}" -e "GRANT ALL PRIVILEGES ON ${MYSQL_DATABASE}.* To '${MYSQL_USERNAME}'@'localhost' IDENTIFIED BY '${MYSQL_PASSWORD}'"
|
|
||||||
echo "flush privileges"
|
|
||||||
mysql -u "root" --password="${MYSQL_ROOT_PASSWORD}" -e "FLUSH PRIVILEGES"
|
|
||||||
|
|
||||||
# If Mysql is on a different host, check if the database exists.
|
|
||||||
else
|
|
||||||
echo "using remote mysql"
|
|
||||||
echo "Checking database ${MYSQL_DATABASE}"
|
|
||||||
RESULT=`mysql -h $MYSQL_HOST -u $MYSQL_USERNAME -p$MYSQL_PASSWORD --skip-column-names -e "SHOW DATABASES LIKE '$MYSQL_DATABASE'"`
|
|
||||||
if [ "$RESULT" != "$MYSQL_DATABASE" ]; then
|
|
||||||
echo "The database $MYSQL_DATABASE does not exist in the mysql instance provided."
|
|
||||||
fi
|
|
||||||
echo "ok"
|
|
||||||
fi
|
|
||||||
|
|
||||||
########################################################
|
|
||||||
## Restart services
|
|
||||||
########################################################
|
|
||||||
|
|
||||||
# Restart the apache2 service
|
|
||||||
service apache2 restart
|
|
||||||
|
|
||||||
# Start the memcached service
|
|
||||||
service memcached restart
|
|
||||||
|
|
||||||
########################################################
|
|
||||||
## Prepare the source code
|
|
||||||
########################################################
|
|
||||||
|
|
||||||
# Default configuration files
|
|
||||||
cp -a /var/www/passbolt/app/Config/app.php.default /var/www/passbolt/app/Config/app.php
|
|
||||||
cp -a /var/www/passbolt/app/Config/core.php.default /var/www/passbolt/app/Config/core.php
|
|
||||||
cp -a /var/www/passbolt/app/webroot/js/app/config/config.json.default /var/www/passbolt/app/webroot/js/app/config/config.json
|
|
||||||
|
|
||||||
# gpg
|
|
||||||
GPG_SERVER_KEY_FINGERPRINT=`gpg -n --with-fingerprint /home/www-data/gpg_server_key_public.key | awk -v FS="=" '/Key fingerprint =/{print $2}' | sed 's/[ ]*//g'`
|
|
||||||
/var/www/passbolt/app/Console/cake passbolt app_config write GPG.serverKey.fingerprint $GPG_SERVER_KEY_FINGERPRINT
|
|
||||||
/var/www/passbolt/app/Console/cake passbolt app_config write GPG.serverKey.public /home/www-data/gpg_server_key_public.key
|
|
||||||
/var/www/passbolt/app/Console/cake passbolt app_config write GPG.serverKey.private /home/www-data/gpg_server_key_private.key
|
|
||||||
chown www-data:www-data /home/www-data/gpg_server_key_public.key
|
|
||||||
chown www-data:www-data /home/www-data/gpg_server_key_private.key
|
|
||||||
|
|
||||||
# overwrite the core configuration
|
|
||||||
/var/www/passbolt/app/Console/cake passbolt core_config gen-cipher-seed
|
|
||||||
/var/www/passbolt/app/Console/cake passbolt core_config gen-security-salt
|
|
||||||
/var/www/passbolt/app/Console/cake passbolt core_config write App.fullBaseUrl https://192.168.99.100
|
|
||||||
|
|
||||||
# overwrite the database configuration
|
|
||||||
# @TODO based on the cake task DbConfigTask implement a task to manipulate the dabase configuration
|
|
||||||
#/var/www/passbolt/app/Console/cake passbolt db_config ${MYSQL_HOST} ${MYSQL_USERNAME} ${MYSQL_PASSWORD} ${MYSQL_DATABASE}
|
|
||||||
|
|
||||||
DATABASE_CONF=/var/www/passbolt/app/Config/database.php
|
|
||||||
# Set configuration in file
|
|
||||||
cat > $DATABASE_CONF << EOL
|
|
||||||
<?php
|
|
||||||
class DATABASE_CONFIG {
|
|
||||||
public \$default = array(
|
|
||||||
'datasource' => 'Database/Mysql',
|
|
||||||
'persistent' => false,
|
|
||||||
'host' => '${MYSQL_HOST}',
|
|
||||||
'login' => '${MYSQL_USERNAME}',
|
|
||||||
'password' => '${MYSQL_PASSWORD}',
|
|
||||||
'database' => '${MYSQL_DATABASE}',
|
|
||||||
'prefix' => '',
|
|
||||||
'encoding' => 'utf8',
|
|
||||||
);
|
|
||||||
};
|
|
||||||
EOL
|
|
||||||
|
|
||||||
#######################################################
|
|
||||||
## Install passbolt
|
|
||||||
########################################################
|
|
||||||
|
|
||||||
# Check if passbolt is already installed.
|
|
||||||
IS_PASSBOLT_INSTALLED=0
|
|
||||||
OUTPUT=$(mysql -N -s -u ${MYSQL_USERNAME} -p${MYSQL_PASSWORD} -e "select count(*) from information_schema.tables where table_schema='${MYSQL_DATABASE}' and table_name='users';")
|
|
||||||
echo "OUTPUT=${OUTPUT}"
|
|
||||||
if [ $OUTPUT == "1" ]; then
|
|
||||||
echo "passbolt is already installed in this database"
|
|
||||||
IS_PASSBOLT_INSTALLED=1
|
|
||||||
else
|
|
||||||
echo "passbolt is not installed in this database. Proceeding.."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install passbolt
|
|
||||||
if [ $IS_PASSBOLT_INSTALLED == "0" ]; then
|
|
||||||
echo "Installing"
|
|
||||||
su -s /bin/bash -c "/var/www/passbolt/app/Console/cake install --admin-username ${ADMIN_USERNAME} --admin-first-name=${ADMIN_FIRST_NAME} --admin-last-name=${ADMIN_LAST_NAME}" www-data
|
|
||||||
echo "We are all set. Have fun with Passbolt !"
|
|
||||||
echo "Reminder : THIS IS A DEMO CONTAINER. DO NOT USE IT IN PRODUCTION!!!!"
|
|
||||||
fi
|
|
||||||
|
|
||||||
########################################################
|
|
||||||
## After install
|
|
||||||
########################################################
|
|
||||||
|
|
||||||
# start fcron
|
|
||||||
fcron &
|
|
||||||
|
|
||||||
# add passbolt email sender job to fcron
|
|
||||||
touch /var/log/passbolt.log
|
|
||||||
chown www-data:www-data /var/log/passbolt.log
|
|
||||||
env > /etc/cron.d/passbolt
|
|
||||||
echo "* * * * * /var/www/passbolt/app/Console/cake EmailQueue.sender > /var/log/passbolt.log" >> /etc/cron.d/passbolt
|
|
||||||
fcrontab -u www-data /etc/cron.d/passbolt
|
|
||||||
|
|
||||||
/bin/bash
|
|
||||||
|
|
@ -1,217 +0,0 @@
|
||||||
fcron-3.2.0/filesubs.c
|
|
||||||
fcron-3.2.0/getloadavg.h
|
|
||||||
fcron-3.2.0/convert-fcrontab.h
|
|
||||||
fcron-3.2.0/install-sh
|
|
||||||
fcron-3.2.0/fcrontab.h
|
|
||||||
fcron-3.2.0/exe_list_test.c
|
|
||||||
fcron-3.2.0/mem.h
|
|
||||||
fcron-3.2.0/MANIFEST
|
|
||||||
fcron-3.2.0/config.h.in
|
|
||||||
fcron-3.2.0/filesubs.h
|
|
||||||
fcron-3.2.0/socket.c
|
|
||||||
fcron-3.2.0/allow.c
|
|
||||||
fcron-3.2.0/exe_list.h
|
|
||||||
fcron-3.2.0/log.h
|
|
||||||
fcron-3.2.0/cl.c
|
|
||||||
fcron-3.2.0/tests/test-open.c
|
|
||||||
fcron-3.2.0/tests/test-types.c
|
|
||||||
fcron-3.2.0/tests/test-uidgid.c
|
|
||||||
fcron-3.2.0/tests/README.tests
|
|
||||||
fcron-3.2.0/README
|
|
||||||
fcron-3.2.0/fcron.h
|
|
||||||
fcron-3.2.0/log.c
|
|
||||||
fcron-3.2.0/exe_list.c
|
|
||||||
fcron-3.2.0/fcron.c
|
|
||||||
fcron-3.2.0/pam.h
|
|
||||||
fcron-3.2.0/Makefile.in
|
|
||||||
fcron-3.2.0/files/fcron.pam
|
|
||||||
fcron-3.2.0/files/fcron.deny
|
|
||||||
fcron-3.2.0/files/fcrontab.pam
|
|
||||||
fcron-3.2.0/files/fcron.conf.in
|
|
||||||
fcron-3.2.0/files/fcron.allow
|
|
||||||
fcron-3.2.0/m4/ax_lib_readline.m4
|
|
||||||
fcron-3.2.0/getloadavg.c
|
|
||||||
fcron-3.2.0/fifo_list.h
|
|
||||||
fcron-3.2.0/subs.c
|
|
||||||
fcron-3.2.0/allow.h
|
|
||||||
fcron-3.2.0/global.h
|
|
||||||
fcron-3.2.0/configure.in
|
|
||||||
fcron-3.2.0/read_string.h
|
|
||||||
fcron-3.2.0/doc/fcron-doc.mod.in
|
|
||||||
fcron-3.2.0/doc/Makefile.in
|
|
||||||
fcron-3.2.0/doc/stylesheets/fcron-doc.dsl.in
|
|
||||||
fcron-3.2.0/doc/en/readme.sgml
|
|
||||||
fcron-3.2.0/doc/en/todo.sgml
|
|
||||||
fcron-3.2.0/doc/en/man/fcron.conf.5
|
|
||||||
fcron-3.2.0/doc/en/man/fcrondyn.1
|
|
||||||
fcron-3.2.0/doc/en/man/fcrontab.1
|
|
||||||
fcron-3.2.0/doc/en/man/fcrontab.5
|
|
||||||
fcron-3.2.0/doc/en/man/bitstring.3
|
|
||||||
fcron-3.2.0/doc/en/man/fcron.8
|
|
||||||
fcron-3.2.0/doc/en/fcron-doc.sgml
|
|
||||||
fcron-3.2.0/doc/en/fcrontab.5.sgml
|
|
||||||
fcron-3.2.0/doc/en/fcrondyn.1.sgml
|
|
||||||
fcron-3.2.0/doc/en/fcron.conf.5.sgml
|
|
||||||
fcron-3.2.0/doc/en/fcrontab.1.sgml
|
|
||||||
fcron-3.2.0/doc/en/HTML/fcrontab.1.html
|
|
||||||
fcron-3.2.0/doc/en/HTML/readme.html
|
|
||||||
fcron-3.2.0/doc/en/HTML/relnotes.html
|
|
||||||
fcron-3.2.0/doc/en/HTML/how-and-why.html
|
|
||||||
fcron-3.2.0/doc/en/HTML/install.html
|
|
||||||
fcron-3.2.0/doc/en/HTML/fcron.conf.5.html
|
|
||||||
fcron-3.2.0/doc/en/HTML/LEGALNOTICE.html
|
|
||||||
fcron-3.2.0/doc/en/HTML/gpl.html
|
|
||||||
fcron-3.2.0/doc/en/HTML/fcrondyn.1.html
|
|
||||||
fcron-3.2.0/doc/en/HTML/fcrontab.5.html
|
|
||||||
fcron-3.2.0/doc/en/HTML/faq.html
|
|
||||||
fcron-3.2.0/doc/en/HTML/manpages.html
|
|
||||||
fcron-3.2.0/doc/en/HTML/fdl.html
|
|
||||||
fcron-3.2.0/doc/en/HTML/changes.html
|
|
||||||
fcron-3.2.0/doc/en/HTML/index.html
|
|
||||||
fcron-3.2.0/doc/en/HTML/fcron.8.html
|
|
||||||
fcron-3.2.0/doc/en/HTML/thanks.html
|
|
||||||
fcron-3.2.0/doc/en/HTML/using-fcron.html
|
|
||||||
fcron-3.2.0/doc/en/HTML/todo.html
|
|
||||||
fcron-3.2.0/doc/en/manpage-foot.sgml
|
|
||||||
fcron-3.2.0/doc/en/changes.sgml
|
|
||||||
fcron-3.2.0/doc/en/fdl.sgml
|
|
||||||
fcron-3.2.0/doc/en/thanks.sgml
|
|
||||||
fcron-3.2.0/doc/en/faq.sgml
|
|
||||||
fcron-3.2.0/doc/en/relnotes.sgml
|
|
||||||
fcron-3.2.0/doc/en/install.sgml
|
|
||||||
fcron-3.2.0/doc/en/gpl.sgml
|
|
||||||
fcron-3.2.0/doc/en/fcron.8.sgml
|
|
||||||
fcron-3.2.0/doc/en/txt/changes.txt
|
|
||||||
fcron-3.2.0/doc/en/txt/thanks.txt
|
|
||||||
fcron-3.2.0/doc/en/txt/gpl.txt
|
|
||||||
fcron-3.2.0/doc/en/txt/readme.txt
|
|
||||||
fcron-3.2.0/doc/en/txt/faq.txt
|
|
||||||
fcron-3.2.0/doc/en/txt/todo.txt
|
|
||||||
fcron-3.2.0/doc/en/txt/install.txt
|
|
||||||
fcron-3.2.0/doc/en/txt/relnotes.txt
|
|
||||||
fcron-3.2.0/doc/psgml-ecat.file
|
|
||||||
fcron-3.2.0/doc/psgml-docbook-dtd.cache
|
|
||||||
fcron-3.2.0/doc/bitstring.3
|
|
||||||
fcron-3.2.0/doc/fr/readme.sgml
|
|
||||||
fcron-3.2.0/doc/fr/todo.sgml
|
|
||||||
fcron-3.2.0/doc/fr/man/fcron.conf.5
|
|
||||||
fcron-3.2.0/doc/fr/man/fcrondyn.1
|
|
||||||
fcron-3.2.0/doc/fr/man/fcrontab.1
|
|
||||||
fcron-3.2.0/doc/fr/man/fcrontab.5
|
|
||||||
fcron-3.2.0/doc/fr/man/bitstring.3
|
|
||||||
fcron-3.2.0/doc/fr/man/fcron.8
|
|
||||||
fcron-3.2.0/doc/fr/fcron-doc.sgml
|
|
||||||
fcron-3.2.0/doc/fr/fcrontab.5.sgml
|
|
||||||
fcron-3.2.0/doc/fr/fcrondyn.1.sgml
|
|
||||||
fcron-3.2.0/doc/fr/fcron.conf.5.sgml
|
|
||||||
fcron-3.2.0/doc/fr/fcrontab.1.sgml
|
|
||||||
fcron-3.2.0/doc/fr/HTML/fcrontab.1.html
|
|
||||||
fcron-3.2.0/doc/fr/HTML/readme.html
|
|
||||||
fcron-3.2.0/doc/fr/HTML/relnotes.html
|
|
||||||
fcron-3.2.0/doc/fr/HTML/how-and-why.html
|
|
||||||
fcron-3.2.0/doc/fr/HTML/install.html
|
|
||||||
fcron-3.2.0/doc/fr/HTML/fcron.conf.5.html
|
|
||||||
fcron-3.2.0/doc/fr/HTML/LEGALNOTICE.html
|
|
||||||
fcron-3.2.0/doc/fr/HTML/gpl.html
|
|
||||||
fcron-3.2.0/doc/fr/HTML/fcrondyn.1.html
|
|
||||||
fcron-3.2.0/doc/fr/HTML/fcrontab.5.html
|
|
||||||
fcron-3.2.0/doc/fr/HTML/faq.html
|
|
||||||
fcron-3.2.0/doc/fr/HTML/manpages.html
|
|
||||||
fcron-3.2.0/doc/fr/HTML/fdl.html
|
|
||||||
fcron-3.2.0/doc/fr/HTML/changes.html
|
|
||||||
fcron-3.2.0/doc/fr/HTML/index.html
|
|
||||||
fcron-3.2.0/doc/fr/HTML/fcron.8.html
|
|
||||||
fcron-3.2.0/doc/fr/HTML/thanks.html
|
|
||||||
fcron-3.2.0/doc/fr/HTML/using-fcron.html
|
|
||||||
fcron-3.2.0/doc/fr/HTML/todo.html
|
|
||||||
fcron-3.2.0/doc/fr/manpage-foot.sgml
|
|
||||||
fcron-3.2.0/doc/fr/changes.sgml
|
|
||||||
fcron-3.2.0/doc/fr/fdl.sgml
|
|
||||||
fcron-3.2.0/doc/fr/thanks.sgml
|
|
||||||
fcron-3.2.0/doc/fr/faq.sgml
|
|
||||||
fcron-3.2.0/doc/fr/relnotes.sgml
|
|
||||||
fcron-3.2.0/doc/fr/install.sgml
|
|
||||||
fcron-3.2.0/doc/fr/gpl.sgml
|
|
||||||
fcron-3.2.0/doc/fr/fcron.8.sgml
|
|
||||||
fcron-3.2.0/doc/fr/txt/changes.txt
|
|
||||||
fcron-3.2.0/doc/fr/txt/thanks.txt
|
|
||||||
fcron-3.2.0/doc/fr/txt/gpl.txt
|
|
||||||
fcron-3.2.0/doc/fr/txt/readme.txt
|
|
||||||
fcron-3.2.0/doc/fr/txt/faq.txt
|
|
||||||
fcron-3.2.0/doc/fr/txt/todo.txt
|
|
||||||
fcron-3.2.0/doc/fr/txt/install.txt
|
|
||||||
fcron-3.2.0/doc/fr/txt/relnotes.txt
|
|
||||||
fcron-3.2.0/u_list.h
|
|
||||||
fcron-3.2.0/env_list.c
|
|
||||||
fcron-3.2.0/dyncom.h
|
|
||||||
fcron-3.2.0/fcronconf.h
|
|
||||||
fcron-3.2.0/fcronsighup.h
|
|
||||||
fcron-3.2.0/database.h
|
|
||||||
fcron-3.2.0/debian/changelog
|
|
||||||
fcron-3.2.0/debian/config
|
|
||||||
fcron-3.2.0/debian/preinst
|
|
||||||
fcron-3.2.0/debian/conffiles
|
|
||||||
fcron-3.2.0/debian/postrm
|
|
||||||
fcron-3.2.0/debian/init
|
|
||||||
fcron-3.2.0/debian/templates.fr
|
|
||||||
fcron-3.2.0/debian/templates
|
|
||||||
fcron-3.2.0/debian/rules
|
|
||||||
fcron-3.2.0/debian/fcron-update-crontabs
|
|
||||||
fcron-3.2.0/debian/TODO.Debian
|
|
||||||
fcron-3.2.0/debian/README.Debian
|
|
||||||
fcron-3.2.0/debian/crontab.root
|
|
||||||
fcron-3.2.0/debian/fcron-update-crontabs.1
|
|
||||||
fcron-3.2.0/debian/postinst
|
|
||||||
fcron-3.2.0/debian/templates.ru
|
|
||||||
fcron-3.2.0/debian/lintian
|
|
||||||
fcron-3.2.0/debian/control
|
|
||||||
fcron-3.2.0/debian/templates.pt
|
|
||||||
fcron-3.2.0/debian/templates.es
|
|
||||||
fcron-3.2.0/debian/templates.de
|
|
||||||
fcron-3.2.0/debian/dirs
|
|
||||||
fcron-3.2.0/debian/copyright
|
|
||||||
fcron-3.2.0/mem.c
|
|
||||||
fcron-3.2.0/configure
|
|
||||||
fcron-3.2.0/database.c
|
|
||||||
fcron-3.2.0/save.c
|
|
||||||
fcron-3.2.0/fcrontab.c
|
|
||||||
fcron-3.2.0/socket.h
|
|
||||||
fcron-3.2.0/VERSION
|
|
||||||
fcron-3.2.0/script/sysVinit-launcher.in
|
|
||||||
fcron-3.2.0/script/fcron-solaris10-manifest.xml
|
|
||||||
fcron-3.2.0/script/install-pam-conf
|
|
||||||
fcron-3.2.0/script/check_system_crontabs.bash
|
|
||||||
fcron-3.2.0/script/user-group
|
|
||||||
fcron-3.2.0/script/gen-doc
|
|
||||||
fcron-3.2.0/script/fcron.sh.in
|
|
||||||
fcron-3.2.0/script/gen-in.pl
|
|
||||||
fcron-3.2.0/script/boot-install
|
|
||||||
fcron-3.2.0/script/check_system_crontabs.sh
|
|
||||||
fcron-3.2.0/script/fcron.init.suse.in
|
|
||||||
fcron-3.2.0/script/has_usrgrp.pl
|
|
||||||
fcron-3.2.0/script/fcron.init.systemd.in
|
|
||||||
fcron-3.2.0/script/boot-uninstall
|
|
||||||
fcron-3.2.0/bitstring.h
|
|
||||||
fcron-3.2.0/option.h
|
|
||||||
fcron-3.2.0/job.h
|
|
||||||
fcron-3.2.0/convert-fcrontab.c
|
|
||||||
fcron-3.2.0/subs.h
|
|
||||||
fcron-3.2.0/read_string.c
|
|
||||||
fcron-3.2.0/fileconf.h
|
|
||||||
fcron-3.2.0/fcrondyn.h
|
|
||||||
fcron-3.2.0/job.c
|
|
||||||
fcron-3.2.0/fifo_list.c
|
|
||||||
fcron-3.2.0/cl.h
|
|
||||||
fcron-3.2.0/lavg_list.h
|
|
||||||
fcron-3.2.0/fcronsighup.c
|
|
||||||
fcron-3.2.0/fcrondyn.c
|
|
||||||
fcron-3.2.0/temp_file.h
|
|
||||||
fcron-3.2.0/u_list.c
|
|
||||||
fcron-3.2.0/lavg_list.c
|
|
||||||
fcron-3.2.0/temp_file.c
|
|
||||||
fcron-3.2.0/fcronconf.c
|
|
||||||
fcron-3.2.0/conf.h
|
|
||||||
fcron-3.2.0/conf.c
|
|
||||||
fcron-3.2.0/fileconf.c
|
|
||||||
fcron-3.2.0/save.h
|
|
||||||
fcron-3.2.0/env_list.h
|
|
||||||
|
|
@ -1,323 +0,0 @@
|
||||||
############################
|
|
||||||
# fcron's Makefile ########
|
|
||||||
############################
|
|
||||||
|
|
||||||
# @configure_input@
|
|
||||||
|
|
||||||
|
|
||||||
# The following should not be edited manually (use configure options)
|
|
||||||
# If you must do it, BEWARE : some of the following is also defined
|
|
||||||
# in config.h, so you must modify config.h AND Makefile in order
|
|
||||||
# to set the same values in the two files.
|
|
||||||
|
|
||||||
FCRON_ALLOW = fcron.allow
|
|
||||||
FCRON_DENY = fcron.deny
|
|
||||||
FCRON_CONF = fcron.conf
|
|
||||||
|
|
||||||
SRCDIR := @srcdir@
|
|
||||||
# Useful to build packages
|
|
||||||
# you may want to use this var with a : 'make DESTDIR=dir install'
|
|
||||||
DESTDIR :=
|
|
||||||
|
|
||||||
# Where should we install it ?
|
|
||||||
prefix = @prefix@
|
|
||||||
exec_prefix = @exec_prefix@
|
|
||||||
DESTSBIN = @sbindir@
|
|
||||||
DESTBIN = @bindir@
|
|
||||||
ETC = @sysconfdir@
|
|
||||||
FCRONTABS = @FCRONTABS@
|
|
||||||
PIDDIR = @PIDDIR@
|
|
||||||
FIFODIR = @FIFODIR@
|
|
||||||
PIDFILE = @PIDFILE@
|
|
||||||
REBOOT_LOCK = @REBOOT_LOCK@
|
|
||||||
FIFOFILE = @FIFOFILE@
|
|
||||||
FCRON_SHELL = @FCRON_SHELL@
|
|
||||||
SENDMAIL = @SENDMAIL@
|
|
||||||
FCRON_EDITOR = @FCRON_EDITOR@
|
|
||||||
OPTIM := @CFLAGS@
|
|
||||||
LDFLAGS := @LDFLAGS@
|
|
||||||
CPPFLAGS := @CPPFLAGS@ -I. -I${SRCDIR}
|
|
||||||
LIBS := @LIBS@
|
|
||||||
LIBOBJS := @LIBOBJS@
|
|
||||||
DEFS := @DEFS@
|
|
||||||
CC := @CC@
|
|
||||||
INSTALL := @INSTALL@
|
|
||||||
STRIP := @STRIP@
|
|
||||||
ROOTNAME := @ROOTNAME@
|
|
||||||
ROOTGROUP := @ROOTGROUP@
|
|
||||||
USERNAME := @USERNAME@
|
|
||||||
GROUPNAME := @GROUPNAME@
|
|
||||||
SYSFCRONTAB := @SYSFCRONTAB@
|
|
||||||
DEBUG := @DEBUG@
|
|
||||||
BOOTINSTALL := @BOOTINSTALL@
|
|
||||||
ANSWERALL := @ANSWERALL@
|
|
||||||
USEPAM := @USEPAM@
|
|
||||||
FCRONDYN := @FCRONDYN@
|
|
||||||
SYSTEMD_DIR := @SYSTEMD_DIR@
|
|
||||||
|
|
||||||
# Options
|
|
||||||
# -DDEBUG even more verbose
|
|
||||||
# -DCHECKJOBS send a mail containing the exact shell command
|
|
||||||
# for each execution of each job.
|
|
||||||
# -DFOREGROUND=[0|1] default run in foreground ?
|
|
||||||
#OPTION= -DCHECKJOBS
|
|
||||||
#OPTION= -O3 -mcpu=i686
|
|
||||||
OPTION :=
|
|
||||||
|
|
||||||
|
|
||||||
####################################
|
|
||||||
# Should not be changed under this #
|
|
||||||
####################################
|
|
||||||
|
|
||||||
VERSION := @VERSION@
|
|
||||||
CFLAGS += $(OPTIM) $(OPTION) $(DEFS) $(CPPFLAGS)
|
|
||||||
ifeq ($(FCRONDYN), 1)
|
|
||||||
LIBOBJS := socket.o $(LIBOBJS)
|
|
||||||
endif
|
|
||||||
OBJSD := fcron.o cl.o subs.o mem.o save.o temp_file.o log.o database.o job.o conf.o u_list.o exe_list.o lavg_list.o env_list.o fcronconf.o filesubs.o $(LIBOBJS)
|
|
||||||
OBJSTAB := fcrontab.o cl.o subs.o mem.o save.o temp_file.o log.o fileconf.o allow.o read_string.o u_list.o env_list.o fcronconf.o filesubs.o
|
|
||||||
OBJSDYN := fcrondyn.o subs.o mem.o log.o allow.o read_string.o fcronconf.o filesubs.o
|
|
||||||
OBJCONV := convert-fcrontab.o cl.o subs.o mem.o save.o log.o u_list.o env_list.o fcronconf.o filesubs.o
|
|
||||||
OBJSIG := fcronsighup.o subs.o mem.o log.o allow.o fcronconf.o filesubs.o
|
|
||||||
HEADERSALL := config.h $(SRCDIR)/global.h $(SRCDIR)/cl.h $(SRCDIR)/log.h $(SRCDIR)/subs.h $(SRCDIR)/mem.h $(SRCDIR)/save.h $(SRCDIR)/option.h $(SRCDIR)/dyncom.h
|
|
||||||
|
|
||||||
# this is a regular expression :
|
|
||||||
# do not ci automaticaly generated files and doc (done by doc's Makefile)
|
|
||||||
RCSNOCI:=.*\(.html\|VERSION\|MANIFEST\|configure\|install.sh\|config.log\|config.status\|config.h\|config.cache\|Makefile\|doc.*\|CVS.*\|.git.*\)
|
|
||||||
|
|
||||||
RUN_NON_PRIVILEGED := @RUN_NON_PRIVILEGED@
|
|
||||||
ifeq ($(RUN_NON_PRIVILEGED), 1)
|
|
||||||
BINMODE:=111
|
|
||||||
BINMODESIGHUP:=111
|
|
||||||
else
|
|
||||||
BINMODE:=6111
|
|
||||||
BINMODESIGHUP:=4110
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(FCRONDYN), 1)
|
|
||||||
all: fcron fcrontab fcrondyn convert-fcrontab files/fcron.conf initscripts documentation
|
|
||||||
else
|
|
||||||
all: fcron fcrontab convert-fcrontab files/fcron.conf
|
|
||||||
endif
|
|
||||||
|
|
||||||
fcron: $(OBJSD)
|
|
||||||
$(CC) $(CFLAGS) -o $@ $(OBJSD) $(LIBS)
|
|
||||||
|
|
||||||
fcrontab: fcronsighup $(OBJSTAB)
|
|
||||||
$(CC) $(CFLAGS) -o $@ $(OBJSTAB) $(LIBS)
|
|
||||||
|
|
||||||
fcrondyn: $(OBJSDYN)
|
|
||||||
$(CC) $(CFLAGS) -o $@ $(OBJSDYN) $(LIBS)
|
|
||||||
|
|
||||||
fcronsighup: $(OBJSIG)
|
|
||||||
$(CC) $(CFLAGS) -o $@ $(OBJSIG) $(LIBS)
|
|
||||||
|
|
||||||
convert-fcrontab: $(OBJCONV)
|
|
||||||
$(CC) $(CFLAGS) -o $@ $(OBJCONV) $(LIBS)
|
|
||||||
|
|
||||||
exe_list_test: exe_list.o u_list.o exe_list_test.o log.o subs.o
|
|
||||||
$(CC) $(CFLAGS) -o $@ exe_list.o u_list.o exe_list_test.o log.o subs.o $(LIBS)
|
|
||||||
|
|
||||||
%.o: $(SRCDIR)/%.c $(HEADERSALL) $(SRCDIR)/%.h
|
|
||||||
$(CC) $(CFLAGS) -DPIDFILE="\"${PIDFILE}\"" -DREBOOT_LOCK="\"${REBOOT_LOCK}\"" \
|
|
||||||
-DFIFOFILE="\"${FIFOFILE}\"" -DETC="\"${ETC}\"" \
|
|
||||||
-DFCRON_SHELL="\"${FCRON_SHELL}\"" -DFCRON_CONF="\"${FCRON_CONF}\"" \
|
|
||||||
-DFCRONTABS="\"${FCRONTABS}\"" \
|
|
||||||
-DFCRON_ALLOW="\"${FCRON_ALLOW}\"" -DFCRON_DENY="\"${FCRON_DENY}\"" \
|
|
||||||
-DFCRON_SHELL="\"${FCRON_SHELL}\"" -DSENDMAIL="\"${SENDMAIL}\"" \
|
|
||||||
-DFCRON_EDITOR="\"${FCRON_EDITOR}\"" -DBINDIREX="\"${DESTBIN}\"" \
|
|
||||||
-c $<
|
|
||||||
|
|
||||||
initscripts:
|
|
||||||
@(if test ! -d script; then mkdir script ; fi ; \
|
|
||||||
for F in sysVinit-launcher fcron.sh fcron.init.suse fcron.init.systemd ; do \
|
|
||||||
$(SRCDIR)/script/gen-in.pl $(SRCDIR)/script/$${F}.in script/$${F} ./ ; \
|
|
||||||
done)
|
|
||||||
|
|
||||||
documentation:
|
|
||||||
$(MAKE) -C doc doc-if-none
|
|
||||||
|
|
||||||
install: install-staged strip perms
|
|
||||||
ifeq ($(BOOTINSTALL), 1)
|
|
||||||
$(SRCDIR)/script/boot-install "$(INSTALL) -o $(ROOTNAME)" $(DESTSBIN) $(DEBUG) $(FCRONTABS) $(ANSWERALL) $(SRCDIR)
|
|
||||||
endif
|
|
||||||
ifneq ($(SYSTEMD_DIR), no)
|
|
||||||
if test ! -d $(DESTDIR)$(SYSTEMD_DIR); then $(INSTALL) -m 755 -d $(DESTDIR)$(SYSTEMD_DIR) ; fi
|
|
||||||
$(INSTALL) -m 644 script/fcron.init.systemd $(DESTDIR)$(SYSTEMD_DIR)/fcron.service
|
|
||||||
endif
|
|
||||||
|
|
||||||
install-staged: all
|
|
||||||
|
|
||||||
# needed by boot-install script :
|
|
||||||
echo `fcron -V 2>&1 | grep "^fcron "` > PREVIOUS_VERSION && chmod a+rw PREVIOUS_VERSION
|
|
||||||
|
|
||||||
$(SRCDIR)/script/user-group $(USERNAME) $(GROUPNAME) $(ANSWERALL) $(SRCDIR)
|
|
||||||
|
|
||||||
# check if the directories we use exist, and if not, create them
|
|
||||||
if test ! -d $(DESTDIR)$(DESTSBIN); then $(INSTALL) -m 755 -d $(DESTDIR)$(DESTSBIN) ; fi
|
|
||||||
if test ! -d $(DESTDIR)$(DESTBIN); then $(INSTALL) -m 755 -d $(DESTDIR)$(DESTBIN) ; fi
|
|
||||||
if test ! -d $(DESTDIR)$(ETC); then $(INSTALL) -m 755 -d $(DESTDIR)$(ETC) ; fi
|
|
||||||
if test ! -d $(DESTDIR)$(PIDDIR); then $(INSTALL) -m 755 -d $(DESTDIR)$(PIDDIR) ; fi
|
|
||||||
if test ! -d $(DESTDIR)$(FIFODIR); then $(INSTALL) -m 755 -d $(DESTDIR)$(FIFODIR) ; fi
|
|
||||||
# create the spool dir
|
|
||||||
$(INSTALL) -m 755 -d $(DESTDIR)$(FCRONTABS)
|
|
||||||
|
|
||||||
$(INSTALL) -m 755 fcron $(DESTDIR)$(DESTSBIN)
|
|
||||||
$(INSTALL) -m 755 fcrontab $(DESTDIR)$(DESTBIN)
|
|
||||||
$(INSTALL) -m 755 fcronsighup $(DESTDIR)$(DESTBIN)
|
|
||||||
ifeq ($(FCRONDYN), 1)
|
|
||||||
$(INSTALL) -m 755 fcrondyn $(DESTDIR)$(DESTBIN)
|
|
||||||
endif
|
|
||||||
if test ! -f $(DESTDIR)$(ETC)/fcron.allow -a ! -f $(DESTDIR)$(ETC)/fcron.deny ; then $(INSTALL) -m 644 $(SRCDIR)/files/fcron.allow $(DESTDIR)$(ETC) ; $(INSTALL) -m 644 $(SRCDIR)/files/fcron.deny $(DESTDIR)$(ETC) ; fi
|
|
||||||
test -f $(DESTDIR)$(ETC)/fcron.conf || $(INSTALL) -m 644 files/fcron.conf $(DESTDIR)$(ETC)
|
|
||||||
|
|
||||||
$(MAKE) -C doc install-staged
|
|
||||||
|
|
||||||
|
|
||||||
perms: install-staged strip
|
|
||||||
# Note : we don't use "chown user:group file" because some systems use ":"
|
|
||||||
# and others "." as separator.
|
|
||||||
chown $(ROOTNAME) $(DESTDIR)$(DESTSBIN)
|
|
||||||
chgrp $(ROOTGROUP) $(DESTDIR)$(DESTSBIN)
|
|
||||||
chown $(ROOTNAME) $(DESTDIR)$(DESTBIN)
|
|
||||||
chgrp $(ROOTGROUP) $(DESTDIR)$(DESTBIN)
|
|
||||||
chown $(ROOTNAME) $(DESTDIR)$(ETC)
|
|
||||||
chgrp $(ROOTGROUP) $(DESTDIR)$(ETC)
|
|
||||||
chown $(ROOTNAME) $(DESTDIR)$(FIFODIR)
|
|
||||||
chgrp $(ROOTGROUP) $(DESTDIR)$(FIFODIR)
|
|
||||||
chown $(ROOTNAME) $(DESTDIR)$(PIDDIR)
|
|
||||||
chgrp $(ROOTGROUP) $(DESTDIR)$(PIDDIR)
|
|
||||||
|
|
||||||
# change spool dir mode
|
|
||||||
chown $(USERNAME) $(DESTDIR)$(FCRONTABS)
|
|
||||||
chgrp $(GROUPNAME) $(DESTDIR)$(FCRONTABS)
|
|
||||||
chmod 770 $(DESTDIR)$(FCRONTABS)
|
|
||||||
|
|
||||||
chown $(ROOTNAME) $(DESTDIR)$(DESTSBIN)/fcron
|
|
||||||
chgrp $(ROOTGROUP) $(DESTDIR)$(DESTSBIN)/fcron
|
|
||||||
chmod 110 $(DESTDIR)$(DESTSBIN)/fcron
|
|
||||||
|
|
||||||
chown $(USERNAME) $(DESTDIR)$(DESTBIN)/fcrontab
|
|
||||||
chgrp $(GROUPNAME) $(DESTDIR)$(DESTBIN)/fcrontab
|
|
||||||
chmod $(BINMODE) $(DESTDIR)$(DESTBIN)/fcrontab
|
|
||||||
|
|
||||||
chown $(ROOTNAME) $(DESTDIR)$(DESTBIN)/fcronsighup
|
|
||||||
chgrp $(GROUPNAME) $(DESTDIR)$(DESTBIN)/fcronsighup
|
|
||||||
chmod $(BINMODESIGHUP) $(DESTDIR)$(DESTBIN)/fcronsighup
|
|
||||||
|
|
||||||
ifeq ($(FCRONDYN), 1)
|
|
||||||
chown $(USERNAME) $(DESTDIR)$(DESTBIN)/fcrondyn
|
|
||||||
chgrp $(GROUPNAME) $(DESTDIR)$(DESTBIN)/fcrondyn
|
|
||||||
chmod $(BINMODE) $(DESTDIR)$(DESTBIN)/fcrondyn
|
|
||||||
endif
|
|
||||||
chown $(ROOTNAME) $(DESTDIR)$(ETC)/fcron.allow $(DESTDIR)$(ETC)/fcron.deny
|
|
||||||
chgrp $(GROUPNAME) $(DESTDIR)$(ETC)/fcron.allow $(DESTDIR)$(ETC)/fcron.deny
|
|
||||||
chmod 640 $(DESTDIR)$(ETC)/fcron.allow $(DESTDIR)$(ETC)/fcron.deny
|
|
||||||
|
|
||||||
chown $(ROOTNAME) $(DESTDIR)$(ETC)/fcron.conf
|
|
||||||
chgrp $(GROUPNAME) $(DESTDIR)$(ETC)/fcron.conf
|
|
||||||
chmod 640 $(DESTDIR)$(ETC)/fcron.conf
|
|
||||||
ifeq ($(USEPAM), 1)
|
|
||||||
$(SRCDIR)/script/install-pam-conf $(SRCDIR) $(DESTDIR)$(ETC) $(ROOTNAME) $(ROOTGROUP) "$(INSTALL)"
|
|
||||||
endif
|
|
||||||
|
|
||||||
# in order to get correct rights when upgrading :
|
|
||||||
|
|
||||||
find $(DESTDIR)$(FCRONTABS) -type f \( -name "*.orig" -a ! -name "$(ROOTNAME).orig" -a ! -name "$(SYSFCRONTAB).orig" \) -exec chown $(USERNAME) {} \; -exec chgrp $(GROUPNAME) {} \; -exec chmod 640 {} \;
|
|
||||||
find $(DESTDIR)$(FCRONTABS) -type f \( -name "$(ROOTNAME).orig" -o -name "$(SYSFCRONTAB).orig" \) -exec chown $(ROOTNAME) {} \; -exec chgrp $(GROUPNAME) {} \; -exec chmod 600 {} \;
|
|
||||||
# First, remove the potential fcrontab.sig, or it could not get removed by fcronsighup if it becomes root:root 600
|
|
||||||
rm -f $(DESTDIR)$(FCRONTABS)/fcrontab.sig
|
|
||||||
find $(DESTDIR)$(FCRONTABS) -type f ! -name "*.orig" -exec chown $(ROOTNAME) {} \; -exec chgrp $(ROOTGROUP) {} \; -exec chmod 600 {} \;
|
|
||||||
|
|
||||||
$(MAKE) -C doc perms
|
|
||||||
|
|
||||||
# strip executables
|
|
||||||
strip: install-staged
|
|
||||||
ifneq ($(DEBUG), 1)
|
|
||||||
strip $(DESTDIR)$(DESTSBIN)/fcron
|
|
||||||
strip $(DESTDIR)$(DESTBIN)/fcrontab
|
|
||||||
strip $(DESTDIR)$(DESTBIN)/fcronsighup
|
|
||||||
ifeq ($(FCRONDYN), 1)
|
|
||||||
strip $(DESTDIR)$(DESTBIN)/fcrondyn
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
install-boot: install
|
|
||||||
$(SRCDIR)/script/boot-install "$(INSTALL) -o $(ROOTNAME)" $(DESTSBIN) $(DEBUG) $(FCRONTABS) $(ANSWERALL) $(SRCDIR)
|
|
||||||
|
|
||||||
install-restart: install
|
|
||||||
ifeq ($(DEBUG), 1)
|
|
||||||
kill -TERM `pidof fcron` || exit 0
|
|
||||||
/etc/init.d/fcron restart
|
|
||||||
endif
|
|
||||||
|
|
||||||
uninstall:
|
|
||||||
rm -f $(DESTDIR)$(DESTSBIN)/fcron
|
|
||||||
rm -f $(DESTDIR)$(DESTBIN)/fcrontab
|
|
||||||
rm -f $(DESTDIR)$(DESTBIN)/fcronsighup
|
|
||||||
rm -f $(DESTDIR)$(DESTBIN)/fcrondyn
|
|
||||||
$(MAKE) -C doc uninstall
|
|
||||||
$(SRCDIR)/script/boot-uninstall
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *.o core
|
|
||||||
rm -f fcron fcrontab fcrondyn fcronsighup convert-fcrontab files/fcron.conf
|
|
||||||
$(MAKE) -C doc clean
|
|
||||||
|
|
||||||
ciclean: clean
|
|
||||||
find ./ -name "*~" -exec rm -f {} \;
|
|
||||||
rm -fR autom4te*
|
|
||||||
|
|
||||||
vclean: ciclean
|
|
||||||
rm -f config.log config.status config.h config.cache Makefile PREVIOUS_VERSION \
|
|
||||||
files/fcron.conf script/fcron.init.suse script/fcron.init.systemd \
|
|
||||||
script/fcron.sh script/sysVinit-launcher
|
|
||||||
$(MAKE) -C doc clean
|
|
||||||
|
|
||||||
|
|
||||||
files/fcron.conf: $(SRCDIR)/files/fcron.conf.in config.h
|
|
||||||
if test ! -d files; then mkdir files ; fi
|
|
||||||
$(SRCDIR)/script/gen-in.pl $(SRCDIR)/files/fcron.conf.in files/fcron.conf ./
|
|
||||||
|
|
||||||
updatedoc:
|
|
||||||
$(MAKE) -C doc doc
|
|
||||||
|
|
||||||
indent:
|
|
||||||
indent -linux -i4 --no-tabs --leave-optional-blank-lines \
|
|
||||||
--start-left-side-of-comments --procnames-start-lines \
|
|
||||||
--dont-cuddle-else *.c *.h
|
|
||||||
|
|
||||||
configure: configure.in
|
|
||||||
# update configure script, then Makefile and config.h, and finally
|
|
||||||
# run make tar using the new Makefile (needed because the version
|
|
||||||
# is set in the configure.in file)
|
|
||||||
autoconf
|
|
||||||
./configure
|
|
||||||
@($(MAKE) tar && \
|
|
||||||
echo "---------------------------------------------" && \
|
|
||||||
echo "Success !" && \
|
|
||||||
echo "(Please ignore the following make error" && \
|
|
||||||
echo " and run your latest make command again)" && \
|
|
||||||
echo "---------------------------------------------" && \
|
|
||||||
exit 999)
|
|
||||||
|
|
||||||
ci: ciclean
|
|
||||||
# the symbolic links verX_X_X has been created since version 2.9.4
|
|
||||||
@(find ./ -type f ! -regex '.*RCS.*' ! -regex "$(RCSNOCI)" \
|
|
||||||
-exec ci -l -Nver`echo $(VERSION) | tr '.' '_'` {} \;)
|
|
||||||
# ci the doc files
|
|
||||||
$(MAKE) -C doc ci
|
|
||||||
|
|
||||||
tar: configure updatedoc vclean ciclean
|
|
||||||
|
|
||||||
echo $(VERSION) > ./VERSION
|
|
||||||
|
|
||||||
$(MAKE) -C doc tarclean
|
|
||||||
|
|
||||||
@(find ./ -type f ! -regex '.*RCS.*' ! -regex '.*CVS.*' ! -regex '.*\.git.*' ! -regex '.*debug/.*'| \
|
|
||||||
sed -e "s:^\./:fcron-$(VERSION)/:" > MANIFEST)
|
|
||||||
@(cd ..; ln -s fcron fcron-$(VERSION))
|
|
||||||
(cd ..; tar -czvf fcron-$(VERSION).src.tar.gz `cat fcron/MANIFEST`)
|
|
||||||
@(cd ..; rm -f fcron-$(VERSION))
|
|
||||||
|
|
||||||
@(cd ..; mv -f fcron-$(VERSION).src.tar.gz old-fcron-pkg/)
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
See readme.txt in directory doc/en/txt/
|
|
||||||
or readme.html in directory doc/en/HTML/.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
3.2.0
|
|
||||||
|
|
@ -1,127 +0,0 @@
|
||||||
|
|
||||||
/*
|
|
||||||
* FCRON - periodic command scheduler
|
|
||||||
*
|
|
||||||
* Copyright 2000-2014 Thibault Godouet <fcron@free.fr>
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
*
|
|
||||||
* The GNU General Public License can also be found in the file
|
|
||||||
* `LICENSE' that comes with the fcron source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include "fcrontab.h"
|
|
||||||
|
|
||||||
#include "allow.h"
|
|
||||||
|
|
||||||
int
|
|
||||||
in_file(char *str, char *file)
|
|
||||||
/* return -1 if file doesn't exist
|
|
||||||
* 0 if string is not in file,
|
|
||||||
* 1 if it is in file
|
|
||||||
* and 2 if file contains "all" string */
|
|
||||||
{
|
|
||||||
char buf[LINE_LEN];
|
|
||||||
FILE *f = NULL;
|
|
||||||
char *start = NULL;
|
|
||||||
|
|
||||||
if ((f = fopen(file, "r")) == NULL) {
|
|
||||||
if (errno == ENOENT)
|
|
||||||
/* file does not exist */
|
|
||||||
return -1;
|
|
||||||
else
|
|
||||||
die_e("could not open %s", file);
|
|
||||||
}
|
|
||||||
|
|
||||||
while (fgets(buf, sizeof(buf), f) != NULL) {
|
|
||||||
|
|
||||||
/* skip leading and trailing blanks, comments */
|
|
||||||
start = buf;
|
|
||||||
Skip_blanks(start);
|
|
||||||
if (*start == '#' || *start == '\0')
|
|
||||||
continue;
|
|
||||||
remove_blanks(start);
|
|
||||||
|
|
||||||
if (strcmp(str, start) == 0) {
|
|
||||||
xfclose_check(&f, file);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
if (strcmp(start, "all") == 0) {
|
|
||||||
xfclose_check(&f, file);
|
|
||||||
return 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
xfclose_check(&f, file);
|
|
||||||
/* if execution gets here, string is not in file */
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
is_allowed(char *user)
|
|
||||||
/* return 1 if user is allowed to use this software
|
|
||||||
* otherwise return 0 */
|
|
||||||
{
|
|
||||||
int allow = 0;
|
|
||||||
int deny = 0;
|
|
||||||
|
|
||||||
/* check if user is in passwd file */
|
|
||||||
if (getpwnam(user) != NULL) {
|
|
||||||
|
|
||||||
/* check if user is in fcron.allow and/or in fcron.deny files */
|
|
||||||
allow = in_file(user, fcronallow);
|
|
||||||
deny = in_file(user, fcrondeny);
|
|
||||||
|
|
||||||
/* in_file() returns:
|
|
||||||
* -1 if file doesn't exist
|
|
||||||
* 0 if string is not in file,
|
|
||||||
* 1 if it is in file
|
|
||||||
* and 2 if file contains "all" string */
|
|
||||||
|
|
||||||
if (allow == -1 && deny == -1)
|
|
||||||
/* neither fcron.allow nor fcron.deny exist :
|
|
||||||
* we consider that user is allowed */
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
if (allow == -1 && deny == 0)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
if (deny == -1 && allow == 1)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
if (allow == 1 && deny != 1)
|
|
||||||
return 1;
|
|
||||||
if (allow == 2 && deny <= 0)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/* if we gets here, user is not allowed */
|
|
||||||
|
|
||||||
#ifdef WITH_AUDIT
|
|
||||||
{
|
|
||||||
int audit_fd = audit_open();
|
|
||||||
audit_log_user_message(audit_fd, AUDIT_USER_START, "fcron deny",
|
|
||||||
NULL, NULL, NULL, 0);
|
|
||||||
xclose_check(&audit_fd, "audit");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
/*
|
|
||||||
* FCRON - periodic command scheduler
|
|
||||||
*
|
|
||||||
* Copyright 2000-2014 Thibault Godouet <fcron@free.fr>
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
*
|
|
||||||
* The GNU General Public License can also be found in the file
|
|
||||||
* `LICENSE' that comes with the fcron source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef __ALLOW_H__
|
|
||||||
#define __ALLOW_H__
|
|
||||||
|
|
||||||
/* functions prototypes */
|
|
||||||
extern int is_allowed(char *user);
|
|
||||||
|
|
||||||
#endif /* __ALLOW_H__ */
|
|
||||||
|
|
@ -1,124 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 1989 The Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* This code is derived from software contributed to Berkeley by
|
|
||||||
* Paul Vixie.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms are permitted
|
|
||||||
* provided that the above copyright notice and this paragraph are
|
|
||||||
* duplicated in all such forms and that any documentation,
|
|
||||||
* advertising materials, and other materials related to such
|
|
||||||
* distribution and use acknowledge that the software was developed
|
|
||||||
* by the University of California, Berkeley. The name of the
|
|
||||||
* University may not be used to endorse or promote products derived
|
|
||||||
* from this software without specific prior written permission.
|
|
||||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
|
|
||||||
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
*
|
|
||||||
* @(#)bitstring.h 5.2 (Berkeley) 4/4/90
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef unsigned char bitstr_t;
|
|
||||||
|
|
||||||
/* internal macros */
|
|
||||||
/* byte of the bitstring bit is in */
|
|
||||||
/* in other words, _bit_byte(bitnum) is the index (starting from 0) of the byte
|
|
||||||
* which contain the bit number 'bitnum' */
|
|
||||||
#define _bit_byte(bit) \
|
|
||||||
((bit) >> 3)
|
|
||||||
|
|
||||||
/* mask for the bit within its byte */
|
|
||||||
#define _bit_mask(bit) \
|
|
||||||
(1 << ((bit)&0x7))
|
|
||||||
|
|
||||||
/* external macros */
|
|
||||||
/* bytes in a bitstring of nbits bits */
|
|
||||||
#define bitstr_size(nbits) \
|
|
||||||
((((nbits) - 1) >> 3) + 1)
|
|
||||||
|
|
||||||
/* allocate a bitstring */
|
|
||||||
#define bit_alloc(nbits) \
|
|
||||||
(bitstr_t *)malloc(1, \
|
|
||||||
(unsigned int)bitstr_size(nbits) * sizeof(bitstr_t))
|
|
||||||
|
|
||||||
/* allocate a bitstring on the stack */
|
|
||||||
#define bit_decl(name, nbits) \
|
|
||||||
(name)[bitstr_size(nbits)]
|
|
||||||
|
|
||||||
/* is bit N of bitstring name set? */
|
|
||||||
#define bit_test(name, bit) \
|
|
||||||
((name)[_bit_byte(bit)] & _bit_mask(bit))
|
|
||||||
|
|
||||||
/* set bit N of bitstring name */
|
|
||||||
#define bit_set(name, bit) \
|
|
||||||
(name)[_bit_byte(bit)] |= _bit_mask(bit)
|
|
||||||
|
|
||||||
/* clear bit N of bitstring name */
|
|
||||||
#define bit_clear(name, bit) \
|
|
||||||
(name)[_bit_byte(bit)] &= ~_bit_mask(bit)
|
|
||||||
|
|
||||||
/* clear bits start ... stop in bitstring */
|
|
||||||
#define bit_nclear(name, start, stop) { \
|
|
||||||
register bitstr_t *_name = name; \
|
|
||||||
register int _start = start, _stop = stop; \
|
|
||||||
register int _startbyte = _bit_byte(_start); \
|
|
||||||
register int _stopbyte = _bit_byte(_stop); \
|
|
||||||
if (_startbyte == _stopbyte) { \
|
|
||||||
_name[_startbyte] &= ((0xff >> (8 - (_start&0x7))) | \
|
|
||||||
(0xff << ((_stop&0x7) + 1))); \
|
|
||||||
} else { \
|
|
||||||
_name[_startbyte] &= 0xff >> (8 - (_start&0x7)); \
|
|
||||||
while (++_startbyte < _stopbyte) \
|
|
||||||
_name[_startbyte] = 0; \
|
|
||||||
_name[_stopbyte] &= 0xff << ((_stop&0x7) + 1); \
|
|
||||||
} \
|
|
||||||
}
|
|
||||||
|
|
||||||
/* set bits start ... stop in bitstring */
|
|
||||||
#define bit_nset(name, start, stop) { \
|
|
||||||
register bitstr_t *_name = name; \
|
|
||||||
register int _start = start, _stop = stop; \
|
|
||||||
register int _startbyte = _bit_byte(_start); \
|
|
||||||
register int _stopbyte = _bit_byte(_stop); \
|
|
||||||
if (_startbyte == _stopbyte) { \
|
|
||||||
_name[_startbyte] |= ((0xff << (_start&0x7)) & \
|
|
||||||
(0xff >> (7 - (_stop&0x7)))); \
|
|
||||||
} else { \
|
|
||||||
_name[_startbyte] |= 0xff << ((_start)&0x7); \
|
|
||||||
while (++_startbyte < _stopbyte) \
|
|
||||||
_name[_startbyte] = 0xff; \
|
|
||||||
_name[_stopbyte] |= 0xff >> (7 - (_stop&0x7)); \
|
|
||||||
} \
|
|
||||||
}
|
|
||||||
|
|
||||||
/* find first bit clear in name */
|
|
||||||
#define bit_ffc(name, nbits, value) { \
|
|
||||||
register bitstr_t *_name = name; \
|
|
||||||
register int _byte, _nbits = nbits; \
|
|
||||||
register int _stopbyte = _bit_byte(_nbits), _value = -1; \
|
|
||||||
for (_byte = 0; _byte <= _stopbyte; ++_byte) \
|
|
||||||
if (_name[_byte] != 0xff) { \
|
|
||||||
_value = _byte << 3; \
|
|
||||||
for (_stopbyte = _name[_byte]; (_stopbyte&0x1); \
|
|
||||||
++_value, _stopbyte >>= 1); \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
*(value) = _value; \
|
|
||||||
}
|
|
||||||
|
|
||||||
/* find first bit set in name */
|
|
||||||
#define bit_ffs(name, nbits, value) { \
|
|
||||||
register bitstr_t *_name = name; \
|
|
||||||
register int _byte, _nbits = nbits; \
|
|
||||||
register int _stopbyte = _bit_byte(_nbits), _value = -1; \
|
|
||||||
for (_byte = 0; _byte <= _stopbyte; ++_byte) \
|
|
||||||
if (_name[_byte]) { \
|
|
||||||
_value = _byte << 3; \
|
|
||||||
for (_stopbyte = _name[_byte]; !(_stopbyte&0x1); \
|
|
||||||
++_value, _stopbyte >>= 1); \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
*(value) = _value; \
|
|
||||||
}
|
|
||||||
|
|
@ -1,74 +0,0 @@
|
||||||
/*
|
|
||||||
* FCRON - periodic command scheduler
|
|
||||||
*
|
|
||||||
* Copyright 2000-2014 Thibault Godouet <fcron@free.fr>
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
*
|
|
||||||
* The GNU General Public License can also be found in the file
|
|
||||||
* `LICENSE' that comes with the fcron source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "global.h"
|
|
||||||
#include "cl.h"
|
|
||||||
#include "mem.h"
|
|
||||||
|
|
||||||
cl_t *
|
|
||||||
dups_cl(cl_t * orig)
|
|
||||||
/* Duplicate a line, including the strings it points to. */
|
|
||||||
{
|
|
||||||
cl_t *cl = NULL;
|
|
||||||
|
|
||||||
Alloc(cl, cl_t);
|
|
||||||
|
|
||||||
/* copy the structure */
|
|
||||||
*cl = *orig;
|
|
||||||
|
|
||||||
/* don't assume any link to a file or belonging to a list */
|
|
||||||
cl->cl_file = NULL;
|
|
||||||
cl->cl_next = NULL;
|
|
||||||
|
|
||||||
/* we just copied the pointers of orig to cl, but we didn't
|
|
||||||
* make a copy of the strings yet.
|
|
||||||
* Reset the pointers, then copy the strings */
|
|
||||||
cl->cl_shell = NULL;
|
|
||||||
Set(cl->cl_shell, orig->cl_shell);
|
|
||||||
|
|
||||||
cl->cl_runas = NULL;
|
|
||||||
Set(cl->cl_runas, orig->cl_runas);
|
|
||||||
debug("%s: Set cl->cl_runas=%s", __func__,
|
|
||||||
(cl->cl_runas == NULL) ? "null" : cl->cl_runas);
|
|
||||||
|
|
||||||
cl->cl_mailto = NULL;
|
|
||||||
Set(cl->cl_mailto, orig->cl_mailto);
|
|
||||||
|
|
||||||
cl->cl_tz = NULL;
|
|
||||||
Set(cl->cl_tz, orig->cl_tz);
|
|
||||||
|
|
||||||
return cl;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
free_line(cl_t * cl)
|
|
||||||
/* free a line, including its fields */
|
|
||||||
{
|
|
||||||
if (cl != NULL) {
|
|
||||||
Free_safe(cl->cl_shell);
|
|
||||||
Free_safe(cl->cl_runas);
|
|
||||||
Free_safe(cl->cl_mailto);
|
|
||||||
Free_safe(cl->cl_tz);
|
|
||||||
Free_safe(cl);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,75 +0,0 @@
|
||||||
/*
|
|
||||||
* FCRON - periodic command scheduler
|
|
||||||
*
|
|
||||||
* Copyright 2000-2014 Thibault Godouet <fcron@free.fr>
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
*
|
|
||||||
* The GNU General Public License can also be found in the file
|
|
||||||
* `LICENSE' that comes with the fcron source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* cl: Cron Line type and associated functions */
|
|
||||||
|
|
||||||
#ifndef __CL_H__
|
|
||||||
#define __CL_H__
|
|
||||||
|
|
||||||
/*
|
|
||||||
* TYPES
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define OPTION_SIZE 4 /* number of bytes to hold the cl_option bit array */
|
|
||||||
#define LAVG_SIZE 3
|
|
||||||
/* warning : do not change the order of the members of this structure
|
|
||||||
* because some tests made are dependent to that order */
|
|
||||||
/* warning : if you change a field type, you may have to also make some changes
|
|
||||||
* in the save/load binary fcrontab functions */
|
|
||||||
typedef struct cl_t {
|
|
||||||
struct cl_t *cl_next;
|
|
||||||
struct cf_t *cl_file; /* the file in which the line is */
|
|
||||||
char *cl_shell; /* shell command */
|
|
||||||
char *cl_runas; /* determine permissions of the job */
|
|
||||||
char *cl_mailto; /* mail output to cl_mailto */
|
|
||||||
char *cl_tz; /* time zone of the line */
|
|
||||||
unsigned long cl_id; /* line's unique id number */
|
|
||||||
time_t cl_until; /* timeout of the wait for a lavg value */
|
|
||||||
time_t cl_first; /* initial delay preserved for volatile entries */
|
|
||||||
time_t cl_nextexe; /* time and date of the next execution */
|
|
||||||
long int cl_timefreq; /* Run every n seconds */
|
|
||||||
unsigned short cl_remain; /* remaining until next execution */
|
|
||||||
unsigned short cl_runfreq; /* Run once every n matches(=1 for %-lines) */
|
|
||||||
unsigned char cl_option[OPTION_SIZE]; /* line's option (see option.h) */
|
|
||||||
unsigned char cl_lavg[LAVG_SIZE]; /*load averages needed (1,5,15 mins) */
|
|
||||||
unsigned char cl_numexe; /* entries in queues & running processes */
|
|
||||||
char cl_nice; /* nice value to control priority */
|
|
||||||
unsigned char cl_jitter; /* run randomly late up to jitter seconds */
|
|
||||||
/* see bitstring(3) man page for more details */
|
|
||||||
bitstr_t bit_decl(cl_mins, 60); /* 0-59 */
|
|
||||||
bitstr_t bit_decl(cl_hrs, 24); /* 0-23 */
|
|
||||||
bitstr_t bit_decl(cl_days, 32); /* 1-31 */
|
|
||||||
bitstr_t bit_decl(cl_mons, 12); /* 0-11 */
|
|
||||||
bitstr_t bit_decl(cl_dow, 8); /* 0-7, 0 and 7 are both Sunday */
|
|
||||||
} cl_t;
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* functions prototypes
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* duplicate a line, including strings it points to */
|
|
||||||
cl_t *dups_cl(cl_t * orig);
|
|
||||||
void free_line(cl_t * cl);
|
|
||||||
|
|
||||||
#endif /* __CL_H__ */
|
|
||||||
1180
fcron-3.2.0/conf.c
1180
fcron-3.2.0/conf.c
File diff suppressed because it is too large
Load Diff
|
|
@ -1,34 +0,0 @@
|
||||||
/*
|
|
||||||
* FCRON - periodic command scheduler
|
|
||||||
*
|
|
||||||
* Copyright 2000-2014 Thibault Godouet <fcron@free.fr>
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
*
|
|
||||||
* The GNU General Public License can also be found in the file
|
|
||||||
* `LICENSE' that comes with the fcron source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef __CONF_H__
|
|
||||||
#define __CONF_H__
|
|
||||||
|
|
||||||
/* functions prototypes */
|
|
||||||
extern void reload_all(const char *dir_name);
|
|
||||||
extern void synchronize_dir(const char *dir_name, int is_system_startup);
|
|
||||||
extern void delete_file(const char *user_name);
|
|
||||||
extern void save_file(struct cf_t *file_name);
|
|
||||||
|
|
||||||
#endif /* __CONF_H__ */
|
|
||||||
|
|
@ -1,523 +0,0 @@
|
||||||
/*
|
|
||||||
* FCRON - periodic command scheduler
|
|
||||||
*
|
|
||||||
* Copyright 2000-2014 Thibault Godouet <fcron@free.fr>
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
*
|
|
||||||
* The GNU General Public License can also be found in the file
|
|
||||||
* `LICENSE' that comes with the fcron source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* *********************************************************** */
|
|
||||||
/* This file is destined to be edited to match your preference */
|
|
||||||
/* *********************************************************** */
|
|
||||||
|
|
||||||
|
|
||||||
/* ****************************************************************** */
|
|
||||||
/* ****************************************************************** */
|
|
||||||
/* beginning of configurable stuff ********************************** */
|
|
||||||
|
|
||||||
|
|
||||||
#define DEFAULT_JOB_PATH "/usr/bin:/bin" /* Default PATH to use when running jobs*/
|
|
||||||
|
|
||||||
#define SENDMAIL_ARGS "-Ffcron", "-odi" /* args of mail command */
|
|
||||||
|
|
||||||
/* *** time *** */
|
|
||||||
#define FIRST_SLEEP 20 /* fcron sleep at least this time after startup
|
|
||||||
* before executing a job, to avoid to run jobs
|
|
||||||
* during system boot */
|
|
||||||
|
|
||||||
#define LAVG_SLEEP 30 /* the time we sleep when some jobs are in lavg queue */
|
|
||||||
|
|
||||||
#define SAVE 1800 /* save every n seconds */
|
|
||||||
|
|
||||||
/* *** behavior *** */
|
|
||||||
#define SERIAL_ONCE 0 /* can a job be several times in the serial queue at
|
|
||||||
* the same moment ? */
|
|
||||||
|
|
||||||
#define LAVG_ONCE 1 /* can a job be several times in the lavg queue at
|
|
||||||
* the same moment ? */
|
|
||||||
|
|
||||||
#define MAXYEAR_SCHEDULE_TIME 10 /* a job can't be scheduled further than
|
|
||||||
* now + MAXYEAR_SCHEDULE years. This is used
|
|
||||||
* to prevent infinite loop on corrupted lines */
|
|
||||||
|
|
||||||
/* *** memory *** */
|
|
||||||
#define ENVVAR_INITIAL_SIZE 10 /* initial number of possible env var for a job
|
|
||||||
* if more env var are required,
|
|
||||||
* fcron will have to realloc() more memory */
|
|
||||||
#define ENVVAR_GROW_SIZE 5 /* this is the number of entries that will be
|
|
||||||
* added to env_list each time it has to grow
|
|
||||||
* up */
|
|
||||||
|
|
||||||
#define EXE_INITIAL_SIZE 6 /* initial number of possible running job
|
|
||||||
* if more jobs have to be run simultaneously,
|
|
||||||
* fcron will have to realloc() more memory */
|
|
||||||
#define EXE_GROW_SIZE 5 /* this is the number of entries that will be
|
|
||||||
* added to exe_array each time it has to grow
|
|
||||||
* up */
|
|
||||||
|
|
||||||
#define SERIAL_QUEUE_MAX 30 /* if serial queue contains this number of entries,
|
|
||||||
* the next serial job to be executed will be run
|
|
||||||
* non-serially each time a serial job is added */
|
|
||||||
#define SERIAL_INITIAL_SIZE 10 /* initial number of possible serial job. If
|
|
||||||
* more jobs have to be in queue simultaneously,
|
|
||||||
* fcron will have to realloc() more memory */
|
|
||||||
#define SERIAL_GROW_SIZE 10 /* this is the number of entries that will be
|
|
||||||
* added to serial queue each time it has to grow
|
|
||||||
* up */
|
|
||||||
|
|
||||||
#define SERIAL_MAX_RUNNING 1 /* fcron will run (by default) no more than this
|
|
||||||
* number of serial job simultaneously.
|
|
||||||
* (this may be overridden by fcron option -m */
|
|
||||||
|
|
||||||
#define LAVG_QUEUE_MAX 30 /* if lavg queue contains this number of entries,
|
|
||||||
* the next lavg job to be executed will be run
|
|
||||||
* before a new lavg job is added */
|
|
||||||
#define LAVG_INITIAL_SIZE 10 /* initial number of possible lavg job. If
|
|
||||||
* more jobs have to be in queue simultaneously,
|
|
||||||
* fcron will have to calloc() more memory */
|
|
||||||
#define LAVG_GROW_SIZE 10 /* this is the number of entries that will be
|
|
||||||
* added to lavg queue each time it has to grow
|
|
||||||
* up */
|
|
||||||
|
|
||||||
|
|
||||||
#define MAXENTRIES 1024 /* max lines in non-root fcrontabs */
|
|
||||||
|
|
||||||
#define LINE_LEN 1024 /* max line length in user's config file */
|
|
||||||
#define USER_NAME_LEN 128 /* max length of a user name */
|
|
||||||
#define PATH_LEN 512 /* max length of a file path */
|
|
||||||
#define SOCKET_MSG_LEN 20 /* max length of a socket msg (fcrondyn) */
|
|
||||||
|
|
||||||
/* WARNING : do not set this too low, or add some more tests in print_field, print_line,
|
|
||||||
* etc ... */
|
|
||||||
#define TERM_LEN 196 /* max nb of char in a term line */
|
|
||||||
|
|
||||||
#define MAX_MSG 175 /* max length of a log message */
|
|
||||||
|
|
||||||
#define WRITE_BUF_LEN 1024 /* length of the buffer used for saving files to disk */
|
|
||||||
|
|
||||||
|
|
||||||
/* *** socket *** */
|
|
||||||
#define MAX_CONNECTION 25 /* max simultaneous connection allowed */
|
|
||||||
#define MAX_IDLE_TIME 600 /* time (in sec) a socket stay idle before being closed */
|
|
||||||
#define MAX_AUTH_TIME 60 /* time (in sec) before a socket is closed if not auth'ed */
|
|
||||||
#define MAX_WAIT_TIME 10 /* time (in sec) we wait for data on a socket */
|
|
||||||
#define MAX_AUTH_FAIL 10 /* auth nobody for some time if more than x fails */
|
|
||||||
#define AUTH_WAIT 60 /* if too many fails, wait this time (seconds) before auth
|
|
||||||
* another client */
|
|
||||||
|
|
||||||
|
|
||||||
/* *** system dependent *** */
|
|
||||||
#define EXIT_ERR 1 /* code returned by fcron/fcrontab on error */
|
|
||||||
#define EXIT_OK 0 /* code returned on normal exit */
|
|
||||||
|
|
||||||
|
|
||||||
/* Syslog facility and priorities messages will be logged to (see syslog(3)) */
|
|
||||||
|
|
||||||
/* NOTE : if you change anything here, check if the doc should not
|
|
||||||
be updated
|
|
||||||
*/
|
|
||||||
#define SYSLOG_FACILITY LOG_CRON
|
|
||||||
#define EXPLAIN_LEVEL LOG_NOTICE /* informational messages */
|
|
||||||
#define WARNING_LEVEL LOG_WARNING /* warning messages */
|
|
||||||
#define COMPLAIN_LEVEL LOG_ERR /* error messages */
|
|
||||||
#define DEBUG_LEVEL LOG_DEBUG /* only used when DEBUG is defined */
|
|
||||||
|
|
||||||
|
|
||||||
/* end of configurable stuff **************************************** */
|
|
||||||
/* ****************************************************************** */
|
|
||||||
/* ****************************************************************** */
|
|
||||||
|
|
||||||
|
|
||||||
/* ****************************************************************** */
|
|
||||||
/* ****************************************************************** */
|
|
||||||
/* *** options which are set by configure script ******************** */
|
|
||||||
|
|
||||||
/* The following should not be edited manually (use configure options)
|
|
||||||
* If you must do it, BEWARE : some of the following is also defined
|
|
||||||
* in the Makefile, so you must modify config.h AND Makefile in order
|
|
||||||
* to set the same values in the two files. */
|
|
||||||
|
|
||||||
#undef VERSION_QUOTED
|
|
||||||
#undef COPYRIGHT_QUOTED
|
|
||||||
|
|
||||||
#undef CFLAGS
|
|
||||||
|
|
||||||
/* ****************************************************************** */
|
|
||||||
/* *** paths *** */
|
|
||||||
|
|
||||||
#undef PROC
|
|
||||||
|
|
||||||
/* ****************************************************************** */
|
|
||||||
/* *** Compilation options *** */
|
|
||||||
|
|
||||||
#undef USE_SENDMAIL
|
|
||||||
/* 1 if we want to compile and install fcrondyn */
|
|
||||||
#undef FCRONDYN
|
|
||||||
#undef NOLOADAVG
|
|
||||||
/* 1 if you want debug mode */
|
|
||||||
#undef DEBUG
|
|
||||||
/* 1 if you want foreground mode by default */
|
|
||||||
#undef FOREGROUND
|
|
||||||
#undef RUN_NON_PRIVILEGED
|
|
||||||
|
|
||||||
/* Define if we should use sete[ug]id() funcs */
|
|
||||||
#undef USE_SETE_ID
|
|
||||||
|
|
||||||
/* root name and group */
|
|
||||||
#undef ROOTNAME
|
|
||||||
#undef ROOTGROUP
|
|
||||||
|
|
||||||
/* user and group name to run under */
|
|
||||||
#undef USERNAME
|
|
||||||
#undef GROUPNAME
|
|
||||||
|
|
||||||
/* special user for the system fcrontab */
|
|
||||||
#undef SYSFCRONTAB
|
|
||||||
|
|
||||||
/* ****************************************************************** */
|
|
||||||
/* *** Types *** */
|
|
||||||
|
|
||||||
/* Define to empty if the keyword does not work. */
|
|
||||||
#undef const
|
|
||||||
|
|
||||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
|
||||||
#undef gid_t
|
|
||||||
|
|
||||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
|
||||||
#undef pid_t
|
|
||||||
|
|
||||||
/* Define to `unsigned' if <sys/types.h> doesn't define. */
|
|
||||||
#undef size_t
|
|
||||||
|
|
||||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
|
||||||
#undef uid_t
|
|
||||||
|
|
||||||
/* Define as the return type of signal handlers (int or void). */
|
|
||||||
#undef RETSIGTYPE
|
|
||||||
|
|
||||||
/* Define if your struct nlist has an n_un member. */
|
|
||||||
#undef NLIST_NAME_UNION
|
|
||||||
|
|
||||||
/* Define for DGUX with <sys/dg_sys_info.h>. */
|
|
||||||
#undef DGUX
|
|
||||||
|
|
||||||
/* Define for Encore UMAX. */
|
|
||||||
#undef UMAX
|
|
||||||
|
|
||||||
/* Define for Encore UMAX 4.3 that has <inq_status/cpustats.h>
|
|
||||||
instead of <sys/cpustats.h>. */
|
|
||||||
#undef UMAX4_3
|
|
||||||
|
|
||||||
/* Define on System V Release 4. */
|
|
||||||
#undef SVR4
|
|
||||||
|
|
||||||
/* ****************************************************************** */
|
|
||||||
/* *** Functions *** */
|
|
||||||
|
|
||||||
/* Define if you have the crypt function. */
|
|
||||||
#undef HAVE_CRYPT
|
|
||||||
|
|
||||||
/* Define if you have the flock function. */
|
|
||||||
#undef HAVE_FLOCK
|
|
||||||
|
|
||||||
/* Define if you have the lockf function. */
|
|
||||||
#undef HAVE_LOCKF
|
|
||||||
|
|
||||||
/* Define if your system has its own `getloadavg' function. */
|
|
||||||
#undef HAVE_GETLOADAVG
|
|
||||||
|
|
||||||
/* Define if the `getloadavg' function needs to be run setuid or setgid. */
|
|
||||||
#undef GETLOADAVG_PRIVILEGED
|
|
||||||
|
|
||||||
/* Define if you have the getcwd function. */
|
|
||||||
#undef HAVE_GETCWD
|
|
||||||
|
|
||||||
/* Define if you have the gethostname function. */
|
|
||||||
#undef HAVE_GETHOSTNAME
|
|
||||||
|
|
||||||
/* Define if you have the getopt_long function. */
|
|
||||||
#undef HAVE_GETOPT_LONG
|
|
||||||
|
|
||||||
/* Define if you have the getpeereid function. */
|
|
||||||
#undef HAVE_GETPEEREID
|
|
||||||
|
|
||||||
/* Define if you have the getpeerucred function. */
|
|
||||||
#undef HAVE_GETPEERUCRED
|
|
||||||
|
|
||||||
/* Define if you have the getspnam function. */
|
|
||||||
#undef HAVE_GETSPNAM
|
|
||||||
|
|
||||||
/* Define if you have the gettimeofday function. */
|
|
||||||
#undef HAVE_GETTIMEOFDAY
|
|
||||||
|
|
||||||
/* Define if you have the kstat* functions. */
|
|
||||||
#undef HAVE_KSTAT
|
|
||||||
|
|
||||||
/* Define if you have the mkstemp function. */
|
|
||||||
#undef HAVE_MKSTEMP
|
|
||||||
|
|
||||||
/* Define if you have the mktime function. */
|
|
||||||
#undef HAVE_MKTIME
|
|
||||||
|
|
||||||
/* Define if you have the putenv function. */
|
|
||||||
#undef HAVE_PUTENV
|
|
||||||
|
|
||||||
/* Define if (struct sockaddr) has an sa_len field. */
|
|
||||||
#undef HAVE_SA_LEN
|
|
||||||
|
|
||||||
/* Define if you have the setenv function. */
|
|
||||||
#undef HAVE_SETENV
|
|
||||||
|
|
||||||
/* Define if you have the setegid function. */
|
|
||||||
#undef HAVE_SETEGID
|
|
||||||
|
|
||||||
/* Define if you have the seteuid function. */
|
|
||||||
#undef HAVE_SETEUID
|
|
||||||
|
|
||||||
/* Define if you have the setlinebuf function. */
|
|
||||||
#undef HAVE_SETLINEBUF
|
|
||||||
|
|
||||||
/* Define if you have the setpriority function. */
|
|
||||||
#undef HAVE_SETPRIORITY
|
|
||||||
|
|
||||||
/* Define if you have the strerror function. */
|
|
||||||
#undef HAVE_STRERROR
|
|
||||||
|
|
||||||
/* Define if you have the setresgid function. */
|
|
||||||
#undef HAVE_SETRESGID
|
|
||||||
|
|
||||||
/* Define if you have the setresuid function. */
|
|
||||||
#undef HAVE_SETRESUID
|
|
||||||
|
|
||||||
/* Define if you have the signal function. */
|
|
||||||
#undef HAVE_SIGNAL
|
|
||||||
|
|
||||||
/* Define if you have the sigset function. */
|
|
||||||
#undef HAVE_SIGSET
|
|
||||||
|
|
||||||
/* Define if you have the strftime function. */
|
|
||||||
#undef HAVE_STRFTIME
|
|
||||||
|
|
||||||
/* Define if you have the wait3 system call. */
|
|
||||||
#undef HAVE_WAIT3
|
|
||||||
|
|
||||||
/* ****************************************************************** */
|
|
||||||
/* *** Headers *** */
|
|
||||||
|
|
||||||
/* Define if you have the ANSI C header files. */
|
|
||||||
#undef STDC_HEADERS
|
|
||||||
|
|
||||||
/* Define if you can safely include both <sys/time.h> and <time.h>. */
|
|
||||||
#undef TIME_WITH_SYS_TIME
|
|
||||||
|
|
||||||
/* Define if your <sys/time.h> declares struct tm. */
|
|
||||||
#undef TM_IN_SYS_TIME
|
|
||||||
|
|
||||||
/* Define if you have the <cred.h> header file. */
|
|
||||||
#undef HAVE_CRED_H
|
|
||||||
|
|
||||||
/* Define if you have the <crypt.h> header file. */
|
|
||||||
#undef HAVE_CRYPT_H
|
|
||||||
|
|
||||||
/* Define if you have the <dirent.h> header file. */
|
|
||||||
#undef HAVE_DIRENT_H
|
|
||||||
|
|
||||||
/* Define if you have the <errno.h> header file. */
|
|
||||||
#undef HAVE_ERRNO_H
|
|
||||||
|
|
||||||
/* Define if you have the <fcntl.h> header file. */
|
|
||||||
#undef HAVE_FCNTL_H
|
|
||||||
|
|
||||||
/* Define if you have the <getopt.h> header file. */
|
|
||||||
#undef HAVE_GETOPT_H
|
|
||||||
|
|
||||||
/* Define if you have the <grp.h> header file. */
|
|
||||||
#undef HAVE_GRP_H
|
|
||||||
|
|
||||||
/* Define if you have the <history.h> header file. */
|
|
||||||
#undef HAVE_HISTORY_H
|
|
||||||
|
|
||||||
/* Define if you have the <libaudit.h> header file. */
|
|
||||||
#undef HAVE_LIBAUDIT_H
|
|
||||||
|
|
||||||
/* Define if you have the <readline.h> header file. */
|
|
||||||
#undef HAVE_READLINE_H
|
|
||||||
|
|
||||||
/* Define if you have the <readline/history.h> header file. */
|
|
||||||
#undef HAVE_READLINE_HISTORY_H
|
|
||||||
|
|
||||||
/* Define if you have the <readline/readline.h> header file. */
|
|
||||||
#undef HAVE_READLINE_READLINE_H
|
|
||||||
|
|
||||||
/* Define if you have the <limits.h> header file. */
|
|
||||||
#undef HAVE_LIMITS_H
|
|
||||||
|
|
||||||
/* Define if you have the <mach/mach.h> header file. */
|
|
||||||
#undef HAVE_MACH_MACH_H
|
|
||||||
|
|
||||||
/* Define if you have the <ndir.h> header file. */
|
|
||||||
#undef HAVE_NDIR_H
|
|
||||||
|
|
||||||
/* Define if you have the <pam/pam_appl.h> header file. */
|
|
||||||
#undef HAVE_PAM_PAM_APPL_H
|
|
||||||
|
|
||||||
/* Define if you have <shadow.h>. */
|
|
||||||
#undef HAVE_SHADOW_H
|
|
||||||
|
|
||||||
/* Define if you have the unsetenv function. */
|
|
||||||
#undef HAVE_UNSETENV
|
|
||||||
|
|
||||||
/* Define if you have <nlist.h>. */
|
|
||||||
#undef NLIST_STRUCT
|
|
||||||
|
|
||||||
/* Define if you have the <security/pam_appl.h> header file. */
|
|
||||||
#undef HAVE_SECURITY_PAM_APPL_H
|
|
||||||
|
|
||||||
/* Define if you have the <stdarg.h> header file. */
|
|
||||||
#undef HAVE_STDARG_H
|
|
||||||
|
|
||||||
/* Define if you have the <strings.h> header file. */
|
|
||||||
#undef HAVE_STRINGS_H
|
|
||||||
|
|
||||||
/* Define if you have the <sys/cred.h> header file. */
|
|
||||||
#undef HAVE_SYS_CRED_H
|
|
||||||
|
|
||||||
/* Define if you have the <sys/dir.h> header file. */
|
|
||||||
#undef HAVE_SYS_DIR_H
|
|
||||||
|
|
||||||
/* Define if you have the <sys/fcntl.h> header file. */
|
|
||||||
#undef HAVE_SYS_FCNTL_H
|
|
||||||
|
|
||||||
/* Define if you have the <sys/file.h> header file. */
|
|
||||||
#undef HAVE_SYS_FILE_H
|
|
||||||
|
|
||||||
/* Define if you have the <sys/ioctl.h> header file. */
|
|
||||||
#undef HAVE_SYS_IOCTL_H
|
|
||||||
|
|
||||||
/* Define if you have the <sys/ndir.h> header file. */
|
|
||||||
#undef HAVE_SYS_NDIR_H
|
|
||||||
|
|
||||||
/* Define if you have the <sys/resource.h> header file. */
|
|
||||||
#undef HAVE_SYS_RESOURCE_H
|
|
||||||
|
|
||||||
/* Define if you have the <sys/socket.h> header file. */
|
|
||||||
#undef HAVE_SYS_SOCKET_H
|
|
||||||
|
|
||||||
/* Define if you have the <sys/time.h> header file. */
|
|
||||||
#undef HAVE_SYS_TIME_H
|
|
||||||
|
|
||||||
/* Define if you have the <sys/types.h> header file. */
|
|
||||||
#undef HAVE_SYS_TYPES_H
|
|
||||||
|
|
||||||
/* Define if you have the <sys/ucred.h> header file. */
|
|
||||||
#undef HAVE_SYS_UCRED_H
|
|
||||||
|
|
||||||
/* Define if you have the <sys/un.h> header file. */
|
|
||||||
#undef HAVE_SYS_UN_H
|
|
||||||
|
|
||||||
/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
|
|
||||||
#undef HAVE_SYS_WAIT_H
|
|
||||||
|
|
||||||
/* Define if you have the <syslog.h> header file. */
|
|
||||||
#undef HAVE_SYSLOG_H
|
|
||||||
|
|
||||||
/* Define if you have the <termios.h> header file. */
|
|
||||||
#undef HAVE_TERMIOS_H
|
|
||||||
|
|
||||||
/* Define if you have the <ucred.h> header file. */
|
|
||||||
#undef HAVE_UCRED_H
|
|
||||||
|
|
||||||
/* Define if you have the <unistd.h> header file. */
|
|
||||||
#undef HAVE_UNISTD_H
|
|
||||||
|
|
||||||
/* ****************************************************************** */
|
|
||||||
/* *** Libraries *** */
|
|
||||||
|
|
||||||
/* Define if you have the audit library (-laudit). */
|
|
||||||
#undef HAVE_LIBAUDIT
|
|
||||||
|
|
||||||
/* Define if you have the dgc library (-ldgc). */
|
|
||||||
#undef HAVE_LIBDGC
|
|
||||||
|
|
||||||
/* Define if you have the pam library (-lpam). */
|
|
||||||
#undef HAVE_LIBPAM
|
|
||||||
|
|
||||||
/* Define if you have the readline library. */
|
|
||||||
#undef HAVE_LIBREADLINE
|
|
||||||
|
|
||||||
/* Define if you have the readline history library. */
|
|
||||||
#undef HAVE_READLINE_HISTORY
|
|
||||||
|
|
||||||
/* Have audit trails (libaudit) support */
|
|
||||||
#undef WITH_AUDIT
|
|
||||||
|
|
||||||
/* Have SE Linux support */
|
|
||||||
#undef WITH_SELINUX
|
|
||||||
|
|
||||||
/* Define if you have the xnet library (-lxnet). */
|
|
||||||
#undef HAVE_LIBXNET
|
|
||||||
|
|
||||||
/* some systems (*BSD, ...) use O_FSYNC instead of O_SYNC for open() */
|
|
||||||
#ifdef HAVE_FCNTL_H
|
|
||||||
#include <fcntl.h>
|
|
||||||
#elif HAVE_SYS_FCNTL_H
|
|
||||||
#include <sys/fcntl.h>
|
|
||||||
#endif
|
|
||||||
#ifndef O_SYNC
|
|
||||||
#define O_SYNC O_FSYNC
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* ****************************************************************** */
|
|
||||||
/* *** Size of *** */
|
|
||||||
|
|
||||||
/* These SIZEOF_* constants are defined by the AC_CHECK_SIZEOF macro */
|
|
||||||
#undef SIZEOF_TIME_T
|
|
||||||
#undef SIZEOF_PID_T
|
|
||||||
#undef SIZEOF_SHORT_INT
|
|
||||||
#undef SIZEOF_INT
|
|
||||||
#undef SIZEOF_LONG_INT
|
|
||||||
#undef SIZEOF_LONG_LONG_INT
|
|
||||||
|
|
||||||
/* We need all these types in global.h to know which conversion string we whould
|
|
||||||
* use when reading a pid_t or a time_t */
|
|
||||||
#ifndef SIZEOF_PID_T
|
|
||||||
#error "sizeof pid_t unknown."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef SIZEOF_TIME_T
|
|
||||||
#error "sizeof time_t unknown."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef SIZEOF_SHORT_INT
|
|
||||||
#error "sizeof short int unknown."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef SIZEOF_INT
|
|
||||||
#error "sizeof int unknown."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef SIZEOF_LONG_INT
|
|
||||||
#error "sizeof long int unknown."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef SIZEOF_LONG_LONG_INT
|
|
||||||
#error "sizeof long long int unknown."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -1,289 +0,0 @@
|
||||||
|
|
||||||
/*
|
|
||||||
* FCRON - periodic command scheduler
|
|
||||||
*
|
|
||||||
* Copyright 2000-2014 Thibault Godouet <fcron@free.fr>
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
*
|
|
||||||
* The GNU General Public License can also be found in the file
|
|
||||||
* `LICENSE' that comes with the fcron source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include "convert-fcrontab.h"
|
|
||||||
#include "mem.h"
|
|
||||||
|
|
||||||
|
|
||||||
void info(void);
|
|
||||||
void usage(void);
|
|
||||||
void convert_file(char *file_name);
|
|
||||||
char *read_str(FILE * f, char *buf, int max);
|
|
||||||
void delete_file(cf_t * file);
|
|
||||||
|
|
||||||
char *cdir = FCRONTABS; /* the dir where are stored users' fcrontabs */
|
|
||||||
|
|
||||||
/* needed by log part : */
|
|
||||||
char *prog_name = NULL;
|
|
||||||
char foreground = 1;
|
|
||||||
pid_t daemon_pid = 0;
|
|
||||||
uid_t rootuid = 0;
|
|
||||||
gid_t rootgid = 0;
|
|
||||||
|
|
||||||
void
|
|
||||||
info(void)
|
|
||||||
/* print some informations about this program :
|
|
||||||
* version, license */
|
|
||||||
{
|
|
||||||
fprintf(stderr,
|
|
||||||
"convert-fcrontab " VERSION_QUOTED "\n"
|
|
||||||
"Copyright " COPYRIGHT_QUOTED " Thibault Godouet <fcron@free.fr>\n"
|
|
||||||
"This program is free software distributed WITHOUT ANY WARRANTY.\n"
|
|
||||||
"See the GNU General Public License for more details.\n"
|
|
||||||
"\n"
|
|
||||||
"WARNING: this program is not supposed to be installed on the "
|
|
||||||
"system. It is only used at installation time to convert the "
|
|
||||||
"the binary fcrontabs in the old format (fcron < 1.1.0, which "
|
|
||||||
"was published in 2001) to the present one.");
|
|
||||||
|
|
||||||
exit(EXIT_OK);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
usage()
|
|
||||||
/* print a help message about command line options and exit */
|
|
||||||
{
|
|
||||||
fprintf(stderr, "\nconvert-fcrontab " VERSION_QUOTED "\n\n"
|
|
||||||
"convert-fcrontab -h\n"
|
|
||||||
"convert-fcrontab -V\n"
|
|
||||||
"convert-fcrontab user\n"
|
|
||||||
" Update the fcrontab of \"user\" to fit the new binary format.\n"
|
|
||||||
"\n"
|
|
||||||
"WARNING: this program is not supposed to be installed on the "
|
|
||||||
"system. It is only used at installation time to convert the "
|
|
||||||
"the binary fcrontabs in the old format (fcron < 1.1.0, which "
|
|
||||||
"was published in 2001) to the present one.");
|
|
||||||
|
|
||||||
exit(EXIT_ERR);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
char *
|
|
||||||
read_str(FILE * f, char *buf, int max)
|
|
||||||
/* return a pointer to string read from file f
|
|
||||||
* if it is non-zero length */
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < max; i++)
|
|
||||||
if ((buf[i] = fgetc(f)) == '\0')
|
|
||||||
break;
|
|
||||||
buf[max - 1] = '\0';
|
|
||||||
|
|
||||||
if (strlen(buf) == 0)
|
|
||||||
return NULL;
|
|
||||||
else
|
|
||||||
return strdup2(buf);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
delete_file(cf_t * file)
|
|
||||||
/* free a file if user_name is not null
|
|
||||||
* otherwise free all files */
|
|
||||||
{
|
|
||||||
cl_t *line = NULL;
|
|
||||||
cl_t *cur_line = NULL;
|
|
||||||
|
|
||||||
|
|
||||||
/* free lines */
|
|
||||||
cur_line = file->cf_line_base;
|
|
||||||
while ((line = cur_line) != NULL) {
|
|
||||||
cur_line = line->cl_next;
|
|
||||||
Free_safe(line->cl_shell);
|
|
||||||
Free_safe(line->cl_mailto);
|
|
||||||
Free_safe(line->cl_runas);
|
|
||||||
Free_safe(line);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* free env variables */
|
|
||||||
env_list_destroy(file->cf_env_list);
|
|
||||||
|
|
||||||
/* finally free file itself */
|
|
||||||
Free_safe(file->cf_user);
|
|
||||||
Free_safe(file);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
convert_file(char *file_name)
|
|
||||||
/* this functions is a mix of read_file() from version 1.0.3 and save_file(),
|
|
||||||
* so you can read more comments there */
|
|
||||||
{
|
|
||||||
cf_t *file = NULL;
|
|
||||||
cl_t *line = NULL;
|
|
||||||
char *env = NULL;
|
|
||||||
FILE *f = NULL;
|
|
||||||
char buf[LINE_LEN];
|
|
||||||
time_t t_save = 0;
|
|
||||||
struct stat file_stat;
|
|
||||||
|
|
||||||
explain("Converting %s's fcrontab ...", file_name);
|
|
||||||
|
|
||||||
Alloc(file, cf_t);
|
|
||||||
/* open file */
|
|
||||||
if ((f = fopen(file_name, "r")) == NULL)
|
|
||||||
die_e("Could not read %s", file_name);
|
|
||||||
|
|
||||||
if (fstat(fileno(f), &file_stat) != 0)
|
|
||||||
die_e("Could not stat %s", file_name);
|
|
||||||
|
|
||||||
bzero(buf, sizeof(buf));
|
|
||||||
|
|
||||||
if (fgets(buf, sizeof(buf), f) == NULL ||
|
|
||||||
strncmp(buf, "fcrontab-017\n", sizeof("fcrontab-017\n")) != 0) {
|
|
||||||
|
|
||||||
error("File %s is not valid: ignored.", file_name);
|
|
||||||
error("Maybe this file has been generated by a too old version "
|
|
||||||
"of fcron ( <= 0.9.4), or is already in the new binary format.");
|
|
||||||
error("In this case, you should reinstall it using fcrontab"
|
|
||||||
" (but be aware that you may lose some data as the last "
|
|
||||||
"execution time and date as if you run a fcrontab -z -n).");
|
|
||||||
exit(EXIT_ERR);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((file->cf_user = read_str(f, buf, sizeof(buf))) == NULL)
|
|
||||||
die_e("Cannot read user's name");
|
|
||||||
|
|
||||||
if (fscanf(f, "%" ATTR_SIZE_TIMET "d", CAST_TIMET_PTR & t_save) != 1)
|
|
||||||
error("could not get time and date of saving");
|
|
||||||
|
|
||||||
/* read env variables */
|
|
||||||
while ((env = read_str(f, buf, sizeof(buf))) != NULL) {
|
|
||||||
env_list_putenv(file->cf_env_list, env, 1);
|
|
||||||
Free_safe(env);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* read lines */
|
|
||||||
Alloc(line, cl_t);
|
|
||||||
while (fread(line, sizeof(cl_t), 1, f) == 1) {
|
|
||||||
|
|
||||||
if ((line->cl_shell = read_str(f, buf, sizeof(buf))) == NULL) {
|
|
||||||
error("Line is not valid (empty shell command) : ignored");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if ((line->cl_runas = read_str(f, buf, sizeof(buf))) == NULL) {
|
|
||||||
error("Line is not valid (empty runas field) : ignored");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if ((line->cl_mailto = read_str(f, buf, sizeof(buf))) == NULL) {
|
|
||||||
error("Line is not valid (empty mailto field) : ignored");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
line->cl_next = file->cf_line_base;
|
|
||||||
file->cf_line_base = line;
|
|
||||||
Alloc(line, cl_t);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
Free_safe(line);
|
|
||||||
|
|
||||||
xfclose(&f);
|
|
||||||
|
|
||||||
/* open a temp file in write mode and truncate it */
|
|
||||||
strcpy(buf, "tmp_");
|
|
||||||
strncat(buf, file_name, sizeof(buf) - sizeof("tmp_") - 1);
|
|
||||||
buf[sizeof(buf) - 1] = '\0';
|
|
||||||
|
|
||||||
/* everything's ok : we can override the src file safely */
|
|
||||||
if (rename(buf, file_name) != 0)
|
|
||||||
error_e("Could not rename %s to %s", buf, file_name);
|
|
||||||
|
|
||||||
save_file_safe(file, file_name, "convert-fcrontab", file_stat.st_uid,
|
|
||||||
file_stat.st_gid, t_save);
|
|
||||||
|
|
||||||
delete_file(file);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
int c;
|
|
||||||
extern char *optarg;
|
|
||||||
extern int optind, opterr, optopt;
|
|
||||||
char *user_to_update = NULL;
|
|
||||||
|
|
||||||
rootuid = get_user_uid_safe(ROOTNAME);
|
|
||||||
rootgid = get_group_gid_safe(ROOTGROUP);
|
|
||||||
|
|
||||||
if (strrchr(argv[0], '/') == NULL)
|
|
||||||
prog_name = argv[0];
|
|
||||||
else
|
|
||||||
prog_name = strrchr(argv[0], '/') + 1;
|
|
||||||
|
|
||||||
|
|
||||||
/* constants and variables defined by command line */
|
|
||||||
|
|
||||||
while (1) {
|
|
||||||
c = getopt(argc, argv, "chV");
|
|
||||||
if (c == EOF)
|
|
||||||
break;
|
|
||||||
switch (c) {
|
|
||||||
|
|
||||||
case 'V':
|
|
||||||
info();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'h':
|
|
||||||
usage();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'c':
|
|
||||||
Set(fcronconf, optarg);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ':':
|
|
||||||
fprintf(stderr, "(setopt) Missing parameter");
|
|
||||||
usage();
|
|
||||||
|
|
||||||
case '?':
|
|
||||||
usage();
|
|
||||||
|
|
||||||
default:
|
|
||||||
fprintf(stderr, "(setopt) Warning: getopt returned %c", c);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (optind >= argc || argc != 2)
|
|
||||||
usage();
|
|
||||||
|
|
||||||
/* parse fcron.conf */
|
|
||||||
read_conf();
|
|
||||||
|
|
||||||
user_to_update = strdup2(argv[optind]);
|
|
||||||
|
|
||||||
if (chdir(cdir) != 0)
|
|
||||||
die_e("Could not change dir to " FCRONTABS);
|
|
||||||
|
|
||||||
convert_file(user_to_update);
|
|
||||||
|
|
||||||
exit(EXIT_OK);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
/*
|
|
||||||
* FCRON - periodic command scheduler
|
|
||||||
*
|
|
||||||
* Copyright 2000-2014 Thibault Godouet <fcron@free.fr>
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
*
|
|
||||||
* The GNU General Public License can also be found in the file
|
|
||||||
* `LICENSE' that comes with the fcron source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef __CONVERT_FCRONTAB_H__
|
|
||||||
#define __CONVERT_FCRONTAB_H__
|
|
||||||
|
|
||||||
/* We create a .h (even if empty !) because we have a generic rule
|
|
||||||
in Makefile to create .o files which needs the corresponding .h to exist. */
|
|
||||||
|
|
||||||
#include "global.h"
|
|
||||||
|
|
||||||
/* needed for parsing a conf file */
|
|
||||||
#include "fcronconf.h"
|
|
||||||
|
|
||||||
extern uid_t rootuid;
|
|
||||||
extern gid_t rootgid;
|
|
||||||
|
|
||||||
#endif /* __CONVERT_FCRONTAB_H__ */
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,54 +0,0 @@
|
||||||
/*
|
|
||||||
* FCRON - periodic command scheduler
|
|
||||||
*
|
|
||||||
* Copyright 2000-2014 Thibault Godouet <fcron@free.fr>
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
*
|
|
||||||
* The GNU General Public License can also be found in the file
|
|
||||||
* `LICENSE' that comes with the fcron source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef __DATABASE_H__
|
|
||||||
#define __DATABASE_H__
|
|
||||||
|
|
||||||
/* functions prototypes */
|
|
||||||
extern void test_jobs(void);
|
|
||||||
extern void wait_chld(void);
|
|
||||||
extern void wait_all(int *counter);
|
|
||||||
extern time_t time_to_sleep(time_t lim);
|
|
||||||
extern time_t check_lavg(time_t lim);
|
|
||||||
extern void set_next_exe(struct cl_t *line, char option, int info_fd);
|
|
||||||
#define NO_GOTO 1 /* set_next_exe() : no goto_non_matching() */
|
|
||||||
#define NO_GOTO_LOG 2 /* set_next_exe() : NO_GOTO but also log nextexe time */
|
|
||||||
#define FROM_CUR_NEXTEXE 4 /* set_next_exe() : compute from nextexe, not now */
|
|
||||||
extern void set_next_exe_notrun(struct cl_t *line, char context);
|
|
||||||
#define LAVG 1 /* set_next_exe_notrun() : context */
|
|
||||||
#define SYSDOWN 2 /* set_next_exe_notrun() : context */
|
|
||||||
#define QUEUE_FULL 3 /* set_next_exe_notrun() : context */
|
|
||||||
#define SYSDOWN_RUNATREBOOT 4 /* set_next_exe_notrun() : context */
|
|
||||||
extern void mail_notrun(struct cl_t *line, char context, struct tm *since);
|
|
||||||
extern void mail_notrun_time_t(cl_t * line, char context, time_t since_time_t);
|
|
||||||
extern job_t *job_queue_remove(cl_t * line);
|
|
||||||
extern void insert_nextexe(struct cl_t *line);
|
|
||||||
extern void run_normal_job(cl_t * line, int fd);
|
|
||||||
extern void add_serial_job(struct cl_t *line, int fd);
|
|
||||||
extern void add_lavg_job(struct cl_t *line, int fd);
|
|
||||||
extern void run_serial_job(void);
|
|
||||||
extern int switch_timezone(const char *orig_tz, const char *dest_tz);
|
|
||||||
extern void switch_back_timezone(const char *orig_tz);
|
|
||||||
|
|
||||||
#endif /* __DATABASE_H__ */
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
fcron for Debian
|
|
||||||
-----------------------------------------------------------------
|
|
||||||
|
|
||||||
While in principle this would be possible, the Debian package of fcron does
|
|
||||||
not try to supersede cron. Note, however, that it has to play dirty with
|
|
||||||
anacron so as to hijack control of /etc/cron.{daily,weekly,monthly} from
|
|
||||||
cron even if anacron is not installed in the system.
|
|
||||||
|
|
||||||
This is done symlinking /usr/sbin/anacron to /bin/true, and unfortunately
|
|
||||||
causes the fcron package to conflict with the anacron package. If you just
|
|
||||||
removed (as opposed to purging) the anacron package to install fcron,
|
|
||||||
anacron's initscript might still try to activate anacron. This is harmless,
|
|
||||||
do NOT file bugs against anacron because of it!
|
|
||||||
|
|
||||||
I'm working with upstream to make fcron more secure (although it looks
|
|
||||||
fairly secure as is). If you don't want to worry about any possible
|
|
||||||
security holes, remove the suid permission from fcrontab (using either
|
|
||||||
suidregister or dpkg-statoverride), and do not install fcrontabs for
|
|
||||||
anyone other than root.
|
|
||||||
|
|
||||||
-- Henrique M. Holschuh <hmh@debian.org>, Mon, 11 Dec 2000 20:14:13 -0200
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
* PAMify fcron (ongoing)
|
|
||||||
* Get rid of anacron hack.
|
|
||||||
* Security audit entire package.
|
|
||||||
* Add the notion of system-wide fcrontab, a la
|
|
||||||
/etc/crontab and get rid of /var/spool/fcron/
|
|
||||||
root.orig in the package.
|
|
||||||
* Deal well with uid 0 != root (name not root)
|
|
||||||
* add logcheck.ignore files
|
|
||||||
|
|
@ -1,248 +0,0 @@
|
||||||
fcron (2.9.5-1) unstable; urgency=low
|
|
||||||
|
|
||||||
* New upstream version.
|
|
||||||
|
|
||||||
* Fix init script.
|
|
||||||
Closes: #262886
|
|
||||||
|
|
||||||
* Merged change from BSP.
|
|
||||||
Closes: #232986
|
|
||||||
|
|
||||||
-- Russell Coker <russell@coker.com.au> Sun, 31 Oct 2004 05:39:00 +1100
|
|
||||||
|
|
||||||
fcron (2.9.4-3.1) unstable; urgency=low
|
|
||||||
|
|
||||||
* NMU during BSP.
|
|
||||||
* ./configure uses now --with-sendmail without checks (closes: #232986).
|
|
||||||
|
|
||||||
-- Sebastian Muszynski <do2ksm@linkt.de> Fri, 19 Mar 2004 16:54:57 +0100
|
|
||||||
|
|
||||||
fcron (2.9.4-3) unstable; urgency=high
|
|
||||||
|
|
||||||
* Made it depend on exim4|mail-transport-agent.
|
|
||||||
Closes: #228570
|
|
||||||
|
|
||||||
-- Russell Coker <russell@coker.com.au> Tue, 20 Jan 2004 17:36:00 +1100
|
|
||||||
|
|
||||||
fcron (2.9.4-2) unstable; urgency=high
|
|
||||||
|
|
||||||
* Accidentally uploaded a version compiled with debugging code, so this
|
|
||||||
version has a correct compile.
|
|
||||||
|
|
||||||
-- Russell Coker <russell@coker.com.au> Thu, 4 Jan 2004 22:31:00 +1100
|
|
||||||
|
|
||||||
fcron (2.9.4-1) unstable; urgency=high
|
|
||||||
|
|
||||||
* New upstream with SE Linux. Upstream has old SE Linux so patched for new
|
|
||||||
SE Linux.
|
|
||||||
|
|
||||||
-- Russell Coker <russell@coker.com.au> Thu, 4 Jan 2004 22:25:00 +1100
|
|
||||||
|
|
||||||
fcron (2.9.3-3) unstable; urgency=high
|
|
||||||
|
|
||||||
* Added patch for ./configure checking for SE Linux from Torsten Knodt
|
|
||||||
<tk-debian@datas-world.de>. Also added the SE Linux patch.
|
|
||||||
Closes: #193610
|
|
||||||
|
|
||||||
-- Russell Coker <russell@coker.com.au> Sat, 17 May 2003 13:55:00 +1000
|
|
||||||
|
|
||||||
fcron (2.9.3-2) unstable; urgency=high
|
|
||||||
|
|
||||||
* Changes for warnings, I think it fixes #169451.
|
|
||||||
|
|
||||||
-- Russell Coker <russell@coker.com.au> Sun, 17 Nov 2002 14:12:00 +0100
|
|
||||||
|
|
||||||
fcron (2.9.3-1) unstable; urgency=high
|
|
||||||
|
|
||||||
* New upstream version.
|
|
||||||
|
|
||||||
-- Russell Coker <russell@coker.com.au> Sat, 2 Nov 2002 22:09:00 +0100
|
|
||||||
|
|
||||||
fcron (2.9.2-2) unstable; urgency=high
|
|
||||||
|
|
||||||
* Made it not try to use -lsecure for non-SE systems.
|
|
||||||
Closes: #163680
|
|
||||||
|
|
||||||
* Added fcrondyn to package.
|
|
||||||
Closes: #163808
|
|
||||||
|
|
||||||
* This is a 2.x.x release.
|
|
||||||
Closes: #112146
|
|
||||||
|
|
||||||
-- Russell Coker <russell@coker.com.au> Sat, 26 Oct 2002 21:25:00 +0200
|
|
||||||
|
|
||||||
fcron (2.9.2-1) unstable; urgency=high
|
|
||||||
|
|
||||||
* New upstream version.
|
|
||||||
|
|
||||||
* Temporarily taking over maintenance.
|
|
||||||
|
|
||||||
-- Russell Coker <russell@coker.com.au> Sun, 6 Oct 2002 07:14:00 +0200
|
|
||||||
|
|
||||||
fcron (1.0.3-5) unstable; urgency=high
|
|
||||||
|
|
||||||
* Fix infinite loop on midmontly code. Thanks to Guy Geens
|
|
||||||
<ggeens@iname.com> for the patch (closes: #143497)
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Thu, 18 Apr 2002 16:45:55 -0300
|
|
||||||
|
|
||||||
fcron (1.0.3-4) unstable; urgency=high
|
|
||||||
|
|
||||||
* Merge in new es, fr, ru templates (closes: #136099, #136484, #137646)
|
|
||||||
* Fix bug in code that showed up with the glibc nice() fix (closes: #143044)
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Tue, 16 Apr 2002 10:49:17 -0300
|
|
||||||
|
|
||||||
fcron (1.0.3-3) unstable; urgency=high
|
|
||||||
|
|
||||||
* SECURITY FIX: Close /tmp exploitable race in fcrontab. Thanks to
|
|
||||||
Colin Phipps <cph@cph.demon.co.uk> for reporting the bug and
|
|
||||||
supplying a patch (closes: #102930)
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Fri, 6 Jul 2001 22:22:42 -0300
|
|
||||||
|
|
||||||
fcron (1.0.3-2) unstable; urgency=low
|
|
||||||
|
|
||||||
* Do not abort postinst if dpkg-statoverride returns non-zero
|
|
||||||
status (closes: #100905)
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Wed, 20 Jun 2001 02:24:19 -0300
|
|
||||||
|
|
||||||
fcron (1.0.3-1) unstable; urgency=medium
|
|
||||||
|
|
||||||
* New upstream source:
|
|
||||||
- Fixes a crash when truncating long messages (not exploitable)
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Sun, 15 Apr 2001 16:41:02 -0300
|
|
||||||
|
|
||||||
fcron (1.0.2-4) unstable; urgency=low
|
|
||||||
|
|
||||||
* Restore default umask settings before running a job. Do note that not
|
|
||||||
setting the umask explicitly in a cronjob that creates files sensitive
|
|
||||||
to it IS asking for trouble, though (closes: #93123)
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Sat, 7 Apr 2001 23:59:10 -0300
|
|
||||||
|
|
||||||
fcron (1.0.2-3) unstable; urgency=low
|
|
||||||
|
|
||||||
* Make sure postinst and postrm will exit with status 0
|
|
||||||
upon successful completion
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Sun, 1 Apr 2001 02:10:14 -0300
|
|
||||||
|
|
||||||
fcron (1.0.2-2) unstable; urgency=low
|
|
||||||
|
|
||||||
* Build-depends only in mail-transport-agent, as autobuilders will not
|
|
||||||
use the OR dependency
|
|
||||||
* Trash dpkg-statoverride entries on purge
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Wed, 14 Mar 2001 15:00:45 -0300
|
|
||||||
|
|
||||||
fcron (1.0.2-1) unstable; urgency=low
|
|
||||||
|
|
||||||
* New upstream source
|
|
||||||
- Fixes bootrun option
|
|
||||||
- shell variables containing "_" are now accepted.
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Sat, 10 Mar 2001 23:25:39 -0300
|
|
||||||
|
|
||||||
fcron (1.0.1-1) unstable; urgency=low
|
|
||||||
|
|
||||||
* New upstream source
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Mon, 26 Feb 2001 17:53:46 -0300
|
|
||||||
|
|
||||||
fcron (1.0.0-1) unstable; urgency=low
|
|
||||||
|
|
||||||
* New upstream source
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Mon, 26 Feb 2001 09:29:13 -0300
|
|
||||||
|
|
||||||
fcron (0.9.5-3) unstable; urgency=low
|
|
||||||
|
|
||||||
* Added german template. Thanks go to Joerg Rieger
|
|
||||||
(closes: #84261). This would have been done much sooner,
|
|
||||||
if I had actually received the report from the BTS.
|
|
||||||
* Fixed lintian warnings, and added lintian override file
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Thu, 22 Feb 2001 22:47:34 -0300
|
|
||||||
|
|
||||||
fcron (0.9.5-2) unstable; urgency=low
|
|
||||||
|
|
||||||
* Better handling of dpkg-overriding in postinst
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Sat, 3 Feb 2001 21:52:15 -0200
|
|
||||||
|
|
||||||
fcron (0.9.5-1) unstable; urgency=high
|
|
||||||
|
|
||||||
* Converted to dpkg-statoverride instead of suidregister
|
|
||||||
* New upstream version
|
|
||||||
* Upstream fixed a severe security hole (another local root exploit)
|
|
||||||
* Minor updates to bring package up-to-date with policy 3.5.0.0
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Wed, 31 Jan 2001 10:44:43 -0200
|
|
||||||
|
|
||||||
fcron (0.9.4-1) unstable; urgency=high
|
|
||||||
|
|
||||||
* New upstream version
|
|
||||||
* Real fix for local root exploit in fcrontab
|
|
||||||
* Re-enables user crontabs disabled by 0.9.3-5 to -7
|
|
||||||
* Root fcrontab protected against non-root access at filesystem level.
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Sun, 31 Dec 2000 22:41:34 -0200
|
|
||||||
|
|
||||||
fcron (0.9.3-7) unstable; urgency=low
|
|
||||||
|
|
||||||
* Fixed sendmail invoke path, and build-depends
|
|
||||||
(closes: #79414)
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Tue, 12 Dec 2000 10:15:00 -0200
|
|
||||||
|
|
||||||
fcron (0.9.3-6) unstable; urgency=high
|
|
||||||
|
|
||||||
* Make sure the security workaround is enabled
|
|
||||||
by suidunregistering fcrontab.
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Sun, 10 Dec 2000 00:23:40 -0200
|
|
||||||
|
|
||||||
fcron (0.9.3-5) unstable; urgency=high
|
|
||||||
|
|
||||||
* Disable fcrontab for users, as it is currently a local root exploit.
|
|
||||||
I'll reenable it after a fix is ready and tested.
|
|
||||||
* All user fcrontabs are moved to /var/spool/fcron/rxdisabled to make
|
|
||||||
sure they're not run until the fix is ready.
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Sat, 9 Dec 2000 16:21:36 -0200
|
|
||||||
|
|
||||||
fcron (0.9.3-4) unstable; urgency=low
|
|
||||||
|
|
||||||
* Fixed double negative in package description
|
|
||||||
* Fixed bogus .orig.tar.gz source
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Fri, 8 Dec 2000 18:31:20 -0200
|
|
||||||
|
|
||||||
fcron (0.9.3-3) unstable; urgency=low
|
|
||||||
|
|
||||||
* Added postinst message (using debconf) to
|
|
||||||
reduce probability of bogus bug reports against
|
|
||||||
anacron.
|
|
||||||
* First upload to Debian (closes: #76497)
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Wed, 6 Dec 2000 21:56:42 -0200
|
|
||||||
|
|
||||||
fcron (0.9.3-2) unstable; urgency=low
|
|
||||||
|
|
||||||
* Fixed maintainer address in control file
|
|
||||||
* Changed package description in control file
|
|
||||||
* Better Depends: line
|
|
||||||
* Better init.d script reload behaviour, now it
|
|
||||||
will freshen up saved uid/gids in fcrontabs.
|
|
||||||
* Updated README.Debian
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Sat, 2 Dec 2000 22:03:45 -0200
|
|
||||||
|
|
||||||
fcron (0.9.3-1) unstable; urgency=low
|
|
||||||
|
|
||||||
* Initial Package. (Closes: #76497)
|
|
||||||
|
|
||||||
-- Henrique de Moraes Holschuh <hmh@debian.org> Sat, 11 Nov 2000 23:10:37 -0200
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
/var/spool/fcron/systab.orig
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
#! /bin/sh
|
|
||||||
# Debconf config file for fcron
|
|
||||||
|
|
||||||
set -e
|
|
||||||
. /usr/share/debconf/confmodule
|
|
||||||
|
|
||||||
# Babysit users who don't read README.Debian
|
|
||||||
db_title fcron
|
|
||||||
db_input high fcron/anacronwarn || true
|
|
||||||
db_go
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
Source: fcron
|
|
||||||
Section: admin
|
|
||||||
Priority: extra
|
|
||||||
Maintainer: Russell Coker <russell@coker.com.au>
|
|
||||||
Build-Depends: debhelper (>= 4.1.16), libpam0g-dev, libselinux1-dev (>= 1.2-1.1)
|
|
||||||
Standards-Version: 3.5.9
|
|
||||||
|
|
||||||
Package: fcron
|
|
||||||
Architecture: any
|
|
||||||
Depends: ${misc:Depends}, ${shlibs:Depends}, debconf, system-log-daemon, mail-transport-agent, adduser (>=3.25), dpkg (>>1.8.3)
|
|
||||||
Conflicts: anacron, suidmanager (<< 0.50)
|
|
||||||
Description: cron-like scheduler with extended capabilities
|
|
||||||
Fcron is a scheduler. It implements most of Vixie Cron's functionalities.
|
|
||||||
But contrary to Vixie Cron, 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 running
|
|
||||||
neither all the time nor regularly.
|
|
||||||
.
|
|
||||||
Fcron also includes a useful system of options, such as: run jobs one by
|
|
||||||
one, run jobs at fcron's startup if they should have been run during system
|
|
||||||
down time, a better management of the mailing of outputs, set a nice value
|
|
||||||
for a job...
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
This package was debianized by Henrique M. Holschuh <hmh@debian.org> on
|
|
||||||
Sat, 11 Nov 2000 23:10:37 -0200.
|
|
||||||
|
|
||||||
It was downloaded from http://fcron.free.fr/
|
|
||||||
|
|
||||||
Upstream Author: Thibault GODOUET <fcron@free.fr>
|
|
||||||
|
|
||||||
fcron is Copyright (c) 2000 by Thibault Godouet <fcron@free.fr>, and it is
|
|
||||||
released under the terms of the GNU General Public License:
|
|
||||||
|
|
||||||
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, or (at your option) any
|
|
||||||
later version.
|
|
||||||
|
|
||||||
The GPL may be found in /usr/share/common-licenses/GPL on a Debian system.
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
!bootrun(true),nice(15),serial(true)
|
|
||||||
%daily * 3-6 run-parts --report /etc/cron.daily
|
|
||||||
%weekly * 3-6 run-parts --report /etc/cron.weekly
|
|
||||||
%monthly * 3-6 * run-parts --report /etc/cron.monthly
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
usr/bin
|
|
||||||
usr/sbin
|
|
||||||
var/spool/fcron
|
|
||||||
etc/pam.d
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# fcron-update-crontabs
|
|
||||||
#
|
|
||||||
# Copyright (c) 2000 Thibault Godouet
|
|
||||||
# Released under the same license as the fcron program.
|
|
||||||
|
|
||||||
fcrontabdir=/var/spool/fcron
|
|
||||||
|
|
||||||
test -d ${fcrontabdir} || exit 0
|
|
||||||
|
|
||||||
# Recompile all crontabs
|
|
||||||
for FILE in ${fcrontabdir}/* ; do
|
|
||||||
if test -f ${FILE} ; then
|
|
||||||
FCRONTAB=`basename "${FILE}" | \
|
|
||||||
sed "s|\..*orig|| ; s|new\..*|| ; s|fcrontab\.sig|| ; s|rm\..*||"`
|
|
||||||
( test ! -z "${FCRONTAB}" && fcrontab -u "${FCRONTAB}" -z ) || echo -n ""
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
.TH FCRON-UPDATE-CRONTABS 8
|
|
||||||
.\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection
|
|
||||||
.\" other parms are allowed: see man(7), man(1)
|
|
||||||
.SH NAME
|
|
||||||
fcron-update-crontabs \- refreshes all fcron crontabs
|
|
||||||
.SH SYNOPSIS
|
|
||||||
.B fcron-update-crontabs
|
|
||||||
.SH "DESCRIPTION"
|
|
||||||
This manual page documents briefly the
|
|
||||||
.BR fcron-update-crontabs
|
|
||||||
command.
|
|
||||||
fcron keeps its crontabs in a binary format, which needs to be
|
|
||||||
recompiled from their text source when fcron is updated or when
|
|
||||||
a userid referenced in the crontabs changes.
|
|
||||||
.B fcron-update-crontabs
|
|
||||||
can be used to recompile all fcron crontabs installed in the
|
|
||||||
system.
|
|
||||||
.PP
|
|
||||||
.SH "SEE ALSO"
|
|
||||||
.BR fcron (8),
|
|
||||||
.BR fcrontab (1),
|
|
||||||
.BR fcrontab (1),
|
|
||||||
.BR fcrontab (5).
|
|
||||||
.SH AUTHOR
|
|
||||||
This manual page was written by Henrique M. Holschuh <hmh@rcm.org.br>,
|
|
||||||
for the Debian GNU/Linux system (but may be used by others).
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
#! /bin/sh
|
|
||||||
#
|
|
||||||
# fcron fcron is a scheduler especially useful for people \
|
|
||||||
# who are not running their system all the time.
|
|
||||||
#
|
|
||||||
# Initscript by Henrique M. Holschuh <hmh@debian.org>.
|
|
||||||
#
|
|
||||||
# Based in /etc/init.d/skeleton:
|
|
||||||
# Written by Miquel van Smoorenburg <miquels@cistron.nl>.
|
|
||||||
# Modified for Debian GNU/Linux
|
|
||||||
# by Ian Murdock <imurdock@gnu.ai.mit.edu>.
|
|
||||||
#
|
|
||||||
|
|
||||||
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
|
||||||
DAEMON=/usr/sbin/fcron
|
|
||||||
NAME=fcron
|
|
||||||
DESC=fcron
|
|
||||||
|
|
||||||
startdaemon () {
|
|
||||||
start-stop-daemon --start --quiet "$@" --pidfile /var/run/$NAME.pid --exec ${DAEMON} -- -b
|
|
||||||
}
|
|
||||||
|
|
||||||
stopdaemon () {
|
|
||||||
start-stop-daemon --stop --quiet "$@" --pidfile /var/run/$NAME.pid --exec ${DAEMON}
|
|
||||||
}
|
|
||||||
|
|
||||||
test -x $DAEMON || exit 0
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
echo -n "Starting $DESC: "
|
|
||||||
startdaemon
|
|
||||||
echo "${NAME}."
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
echo -n "Stopping $DESC: "
|
|
||||||
stopdaemon --oknodo
|
|
||||||
echo "${NAME}."
|
|
||||||
;;
|
|
||||||
reload|force-reload)
|
|
||||||
echo "Reloading $DESC configuration files."
|
|
||||||
fcron-update-crontabs >/dev/null 2>&1
|
|
||||||
stopdaemon --signal 1
|
|
||||||
;;
|
|
||||||
restart)
|
|
||||||
echo -n "Restarting $DESC: "
|
|
||||||
stopdaemon
|
|
||||||
sleep 1
|
|
||||||
startdaemon
|
|
||||||
echo "${NAME}."
|
|
||||||
;;
|
|
||||||
# restart-if-running)
|
|
||||||
# echo -n "Stopping $DESC if it is running: "
|
|
||||||
# if start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid --exec ${DAEMON} ; then
|
|
||||||
# echo "${NAME}."
|
|
||||||
# echo -n "Restarting $DESC: "
|
|
||||||
# startdaemon
|
|
||||||
# echo "${NAME}."
|
|
||||||
# else
|
|
||||||
# echo "(not running)."
|
|
||||||
# fi
|
|
||||||
# ;;
|
|
||||||
*)
|
|
||||||
N=/etc/init.d/$NAME
|
|
||||||
echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
fcron: non-standard-dir-perm var/spool/fcron/ 0770 != 0755
|
|
||||||
fcron: file-in-unusual-dir var/spool/fcron/systab.orig
|
|
||||||
fcron: link-to-undocumented-manpage usr/share/man/man8/anacron.8.gz
|
|
||||||
|
|
@ -1,102 +0,0 @@
|
||||||
#! /bin/sh
|
|
||||||
# postinst script for fcron
|
|
||||||
|
|
||||||
set -e
|
|
||||||
. /usr/share/debconf/confmodule
|
|
||||||
db_stop
|
|
||||||
|
|
||||||
# summary of how this script can be called:
|
|
||||||
# * <postinst> `configure' <most-recently-configured-version>
|
|
||||||
# * <old-postinst> `abort-upgrade' <new version>
|
|
||||||
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
|
||||||
# <new-version>
|
|
||||||
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
|
||||||
# <failed-install-package> <version> `removing'
|
|
||||||
# <conflicting-package> <version>
|
|
||||||
# for details, see /usr/share/doc/packaging-manual/
|
|
||||||
#
|
|
||||||
# quoting from the policy:
|
|
||||||
# Any necessary prompting should almost always be confined to the
|
|
||||||
# post-installation script, and should be protected with a conditional
|
|
||||||
# so that unnecessary prompting doesn't happen if a package's
|
|
||||||
# installation fails and the `postinst' is called with `abort-upgrade',
|
|
||||||
# `abort-remove' or `abort-deconfigure'.
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
configure)
|
|
||||||
#
|
|
||||||
# Create user fcron and chown spool
|
|
||||||
#
|
|
||||||
cd /var/spool/fcron
|
|
||||||
adduser --system --group --home /var/spool/fcron --no-create-home --disabled-password fcron >/dev/null 2>&1
|
|
||||||
chown fcron:fcron /var/spool/fcron
|
|
||||||
# add dpkg-statoverride here after dpkg 1.9.x is out
|
|
||||||
|
|
||||||
#
|
|
||||||
# Reenable local user fcrontabs removed by 0.9.3-5..7
|
|
||||||
#
|
|
||||||
[ -d /var/spool/fcron/rxdisabled ] && {
|
|
||||||
echo "Trying to reenable fcrontabs disabled by security patch..."
|
|
||||||
userftb=
|
|
||||||
for i in `find /var/spool/fcron/rxdisabled -type f \
|
|
||||||
! -name '.*' -maxdepth 1 -print0 | xargs -0` ; do
|
|
||||||
fcrontabname="`basename ${i}`"
|
|
||||||
# we can salvage only uncompiled fcrontabs
|
|
||||||
if [ "${fcrontabname%.orig}" != "${fcrontabname}" ] ; then
|
|
||||||
if [ ! -e /var/spool/fcron/${fcrontabname} ] ; then
|
|
||||||
mv /var/spool/fcron/rxdisabled/${fcrontabname} /var/spool/fcron/
|
|
||||||
userftb="${userftb} ${fcrontabname%.orig}"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
rm -f "${i}" || true
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if rmdir /var/spool/fcron/rxdisabled >/dev/null 2>&1 ; then
|
|
||||||
[ "${userftb}" != "" ] && echo "Reinstaled fcrontabs for user(s): " ${userftb}
|
|
||||||
else
|
|
||||||
echo "Failed to reinstall all previously disabled user fcrontabs."
|
|
||||||
echo "Please check /var/spool/fcron and /var/spool/fcron/rxdisabled manually,"
|
|
||||||
echo "and remove the rxdisabled subdirectory when done."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Ensures correct owner and group for all fcrontabs
|
|
||||||
#
|
|
||||||
find /var/spool/fcron -type f ! -name '*.*' -exec chown root:root {} \;
|
|
||||||
find /var/spool/fcron -type f ! -name 'root.*' -name '*.*' -exec chown fcron:fcron {} \;
|
|
||||||
chown root:fcron root.* *.root >/dev/null 2>&1 || true
|
|
||||||
|
|
||||||
#
|
|
||||||
# Setgid/setuid fcrontab binary
|
|
||||||
#
|
|
||||||
OVERRIDEN=
|
|
||||||
OVERRIDEN=`dpkg-statoverride --list /usr/bin/fcrontab` || true
|
|
||||||
[ "${OVERRIDEN}" = "" ] && dpkg-statoverride --update --add fcron fcron 6755 /usr/bin/fcrontab
|
|
||||||
OVERRIDEN=
|
|
||||||
OVERRIDEN=`dpkg-statoverride --list /usr/bin/fcronsighup` || true
|
|
||||||
[ "${OVERRIDEN}" = "" ] && dpkg-statoverride --update --add root fcron 4750 /usr/bin/fcronsighup
|
|
||||||
|
|
||||||
#
|
|
||||||
# Makes sure we have no version incompatibilities on compiled
|
|
||||||
# fcrontabs
|
|
||||||
#
|
|
||||||
fcron-update-crontabs >/dev/null 2>&1
|
|
||||||
chgrp fcron /etc/fcron.conf /etc/fcron.allow /etc/fcron.deny
|
|
||||||
;;
|
|
||||||
|
|
||||||
abort-upgrade|abort-remove|abort-deconfigure)
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
echo "postinst called with unknown argument \`$1'" >&2
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# dh_installdeb will replace this with shell code automatically
|
|
||||||
# generated by other debhelper scripts.
|
|
||||||
|
|
||||||
#DEBHELPER#
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
|
|
@ -1,51 +0,0 @@
|
||||||
#! /bin/sh
|
|
||||||
# postrm script for fcron
|
|
||||||
#
|
|
||||||
# see: dh_installdeb(1)
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# summary of how this script can be called:
|
|
||||||
# * <postrm> `remove'
|
|
||||||
# * <postrm> `purge'
|
|
||||||
# * <old-postrm> `upgrade' <new-version>
|
|
||||||
# * <new-postrm> `failed-upgrade' <old-version>
|
|
||||||
# * <new-postrm> `abort-install'
|
|
||||||
# * <new-postrm> `abort-install' <old-version>
|
|
||||||
# * <new-postrm> `abort-upgrade' <old-version>
|
|
||||||
# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
|
|
||||||
# for details, see /usr/share/doc/packaging-manual/
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
purge)
|
|
||||||
|
|
||||||
# Purge fcrontabs
|
|
||||||
rm -rf /var/spool/fcron || true
|
|
||||||
|
|
||||||
# Purge statoverrides
|
|
||||||
dpkg-statoverride --remove /usr/bin/fcrontab || true
|
|
||||||
dpkg-statoverride --remove /usr/bin/fcronsighup || true
|
|
||||||
|
|
||||||
# Remove user fcron
|
|
||||||
userdel fcron || true
|
|
||||||
;;
|
|
||||||
|
|
||||||
remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
echo "postrm called with unknown argument \`$1'" >&2
|
|
||||||
exit 0
|
|
||||||
|
|
||||||
esac
|
|
||||||
|
|
||||||
# dh_installdeb will replace this with shell code automatically
|
|
||||||
# generated by other debhelper scripts.
|
|
||||||
|
|
||||||
#DEBHELPER#
|
|
||||||
|
|
||||||
if [ "$1" = remove -a -e /etc/suid.conf ] && \
|
|
||||||
command -v suidunregister >/dev/null 2>&1; then
|
|
||||||
suidunregister -s fcron /usr/bin/fcrontab
|
|
||||||
fi
|
|
||||||
exit 0
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
FILE=/var/spool/fcron/root.orig
|
|
||||||
|
|
||||||
if [ -f $FILE ]; then
|
|
||||||
grep -v "/etc/cron.\(daily\)\|\(weekly\)\|\(monthly\)" $FILE > $FILE.new
|
|
||||||
mv $FILE.new $FILE
|
|
||||||
fi
|
|
||||||
|
|
||||||
#DEBHELPER#
|
|
||||||
|
|
@ -1,107 +0,0 @@
|
||||||
#!/usr/bin/make -f
|
|
||||||
# Sample debian/rules that uses debhelper.
|
|
||||||
# GNU copyright 1997 to 1999 by Joey Hess.
|
|
||||||
# Modified for package fcron
|
|
||||||
|
|
||||||
# Uncomment this to turn on verbose mode.
|
|
||||||
#export DH_VERBOSE=1
|
|
||||||
|
|
||||||
# This is the debhelper compatability version to use.
|
|
||||||
export DH_COMPAT=3
|
|
||||||
|
|
||||||
# Enable debug package build if DEB_BUILD_OPTIONS contains debug
|
|
||||||
CONFFLAGS =
|
|
||||||
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
|
|
||||||
CONFFLAGS += --with-debug
|
|
||||||
endif
|
|
||||||
|
|
||||||
configure-stamp: configure
|
|
||||||
dh_testdir
|
|
||||||
./configure --prefix=/usr --with-mandir=/usr/share/man --with-docdir=/usr/share/doc --with-editor=/usr/bin/sensible-editor --with-spooldir=/var/spool/fcron --with-etcdir=/etc --with-sendmail=/usr/sbin/sendmail $(CONFFLAGS) --with-selinux=yes
|
|
||||||
|
|
||||||
touch configure-stamp
|
|
||||||
|
|
||||||
configure:
|
|
||||||
autoconf
|
|
||||||
|
|
||||||
build: configure-stamp build-stamp
|
|
||||||
build-stamp:
|
|
||||||
dh_testdir
|
|
||||||
$(MAKE)
|
|
||||||
touch build-stamp
|
|
||||||
|
|
||||||
clean: configure
|
|
||||||
dh_testdir
|
|
||||||
dh_testroot
|
|
||||||
rm -f build-stamp configure-stamp
|
|
||||||
|
|
||||||
-$(MAKE) clean
|
|
||||||
-$(RM) -f config.cache config.log config.status config.h Makefile
|
|
||||||
|
|
||||||
dh_clean
|
|
||||||
|
|
||||||
install: build
|
|
||||||
dh_testdir
|
|
||||||
dh_testroot
|
|
||||||
dh_clean -k
|
|
||||||
dh_installdirs
|
|
||||||
|
|
||||||
#$(MAKE) install prefix=`pwd`/debian/tmp/usr
|
|
||||||
|
|
||||||
install -m 755 fcron `pwd`/debian/fcron/usr/sbin
|
|
||||||
install -m 755 fcrontab fcronsighup fcrondyn `pwd`/debian/fcron/usr/bin
|
|
||||||
install files/fcron.deny files/fcron.allow `pwd`/debian/fcron/etc
|
|
||||||
install files/fcron.conf `pwd`/debian/fcron/etc
|
|
||||||
install -m 644 files/fcrontab.pam `pwd`/debian/fcron/etc/pam.d/fcrontab
|
|
||||||
install -m 644 files/fcron.pam `pwd`/debian/fcron/etc/pam.d/fcron
|
|
||||||
|
|
||||||
install -m 755 debian/fcron-update-crontabs `pwd`/debian/fcron/usr/sbin
|
|
||||||
|
|
||||||
# root's default crontab
|
|
||||||
install -m 640 debian/crontab.root `pwd`/debian/fcron/var/spool/fcron/systab.orig
|
|
||||||
|
|
||||||
# lintian overrides
|
|
||||||
install -D -m 644 debian/lintian `pwd`/debian/fcron/usr/share/lintian/overrides/fcron
|
|
||||||
|
|
||||||
# add anacron hack
|
|
||||||
ln -s /bin/true `pwd`/debian/fcron/usr/sbin/anacron
|
|
||||||
|
|
||||||
# Build architecture-independent files here.
|
|
||||||
binary-indep: build install
|
|
||||||
# We have nothing to do by default.
|
|
||||||
|
|
||||||
# Build architecture-dependent files here.
|
|
||||||
binary-arch: build install
|
|
||||||
# dh_testversion
|
|
||||||
dh_testdir
|
|
||||||
dh_testroot
|
|
||||||
dh_installdebconf
|
|
||||||
dh_installdocs
|
|
||||||
dh_installexamples
|
|
||||||
# dh_installmenu
|
|
||||||
# dh_installpam
|
|
||||||
dh_installinit -- defaults 89 11
|
|
||||||
# dh_installcron
|
|
||||||
dh_installmanpages bitstring.3
|
|
||||||
# dh_installinfo
|
|
||||||
dh_installchangelogs
|
|
||||||
dh_link
|
|
||||||
ifeq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
|
|
||||||
dh_strip
|
|
||||||
endif
|
|
||||||
dh_compress
|
|
||||||
dh_fixperms
|
|
||||||
chmod 640 `pwd`/debian/fcron/etc/fcron.allow `pwd`/debian/fcron/etc/fcron.deny
|
|
||||||
chmod 640 `pwd`/debian/fcron/etc/fcron.conf
|
|
||||||
chmod 770 `pwd`/debian/fcron/var/spool/fcron
|
|
||||||
#dh_suidregister
|
|
||||||
# dh_makeshlibs
|
|
||||||
dh_installdeb
|
|
||||||
# dh_perl
|
|
||||||
dh_shlibdeps
|
|
||||||
dh_gencontrol
|
|
||||||
dh_md5sums
|
|
||||||
dh_builddeb
|
|
||||||
|
|
||||||
binary: binary-indep binary-arch
|
|
||||||
.PHONY: build clean binary-indep binary-arch binary install
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
Template: fcron/anacronwarn
|
|
||||||
Type: note
|
|
||||||
Description: Warning: interactions with anacron!
|
|
||||||
If you have the anacron package in the 'removed' but not 'purged'
|
|
||||||
state (i.e. anacron configuration files are still around the system),
|
|
||||||
the fcron package will cause harmless side effects, such as reports
|
|
||||||
of anacron being started at boot up.
|
|
||||||
.
|
|
||||||
DO NOT FILE BUGS AGAINST ANACRON IF YOU HAVE FCRON INSTALLED IN THE
|
|
||||||
SYSTEM. They will be either reassigned to fcron to be summarily closed
|
|
||||||
by me, or summarily closed by the anacron maintainer himself.
|
|
||||||
.
|
|
||||||
More information about this issue is available in
|
|
||||||
/usr/share/doc/fcron/README.Debian
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
Template: fcron/anacronwarn
|
|
||||||
Type: note
|
|
||||||
Description-de: Warnung: Wechselwirkungen mit anacron !
|
|
||||||
Wenn Sie das anachron Packet im 'removed' aber nicht im 'purged' Status
|
|
||||||
haben (z.B. es befinden sich noch irgendwo im System anacron Konfigurations
|
|
||||||
Dateien ), kann es sein, dass das fcron Paket einige harmlose Seiteneffekte
|
|
||||||
aufweist, z.B. Meldungen das anacron beim booten gestartet wurde.
|
|
||||||
.
|
|
||||||
MELDEN SIE KEINE ANACRON BUGS, WENN SIE ES MIT FCRON ZUSAMMEN INSTALLIERT
|
|
||||||
HABEN. Diese werden entweder fcron zugeschrieben um von mir geschlossen zu
|
|
||||||
werden oder vom direkt anacron Maintainer geschlossen.
|
|
||||||
.
|
|
||||||
Weiter Informationen finden Sie in
|
|
||||||
/usr/share/doc/fcron/README.Debian
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
Template: fcron/anacronwarn
|
|
||||||
Type: note
|
|
||||||
Description: Warning: interactions with anacron!
|
|
||||||
If you have the anacron package in the 'removed' but not 'purged' state
|
|
||||||
(i.e. anacron configuration files are still around the system), the fcron
|
|
||||||
package will cause harmless side effects, such as reports of anacron being
|
|
||||||
started at boot up.
|
|
||||||
.
|
|
||||||
DO NOT FILE BUGS AGAINST ANACRON IF YOU HAVE FCRON INSTALLED IN THE
|
|
||||||
SYSTEM. They will be either reassigned to fcron to be summarily closed by
|
|
||||||
me, or summarily closed by the anacron maintainer himself.
|
|
||||||
.
|
|
||||||
More information about this issue is available in
|
|
||||||
/usr/share/doc/fcron/README.Debian
|
|
||||||
Description-es: Aviso sobre las interacciones con anacron.
|
|
||||||
Si ha borrado el paquete anacron pero no lo ha purgado, sus ficheros de
|
|
||||||
configuración aún se encuentran en el sistema y pueden provocar efectos
|
|
||||||
colaterales en fcron y comportamientos extraños, como que parezca que se
|
|
||||||
ha iniciado anacron al arrancar.
|
|
||||||
.
|
|
||||||
NO ENVÍE INFORMES DE ERROR CONTRA ANACRON SI TIENE FCRON INSTALADO EN EL
|
|
||||||
SISTEMA. Serán reasignados a fcron y cerrados inmediatamente, o bien
|
|
||||||
los cerrará el propio mantenedor de anacron.
|
|
||||||
.
|
|
||||||
Puede encontrar más información en /usr/share/doc/fcron/README.Debian.
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
Template: fcron/anacronwarn
|
|
||||||
Type: note
|
|
||||||
Description: Warning: interactions with anacron!
|
|
||||||
If you have the anacron package in the 'removed' but not 'purged' state
|
|
||||||
(i.e. anacron configuration files are still around the system), the fcron
|
|
||||||
package will cause harmless side effects, such as reports of anacron being
|
|
||||||
started at boot up.
|
|
||||||
.
|
|
||||||
DO NOT FILE BUGS AGAINST ANACRON IF YOU HAVE FCRON INSTALLED IN THE
|
|
||||||
SYSTEM. They will be either reassigned to fcron to be summarily closed by
|
|
||||||
me, or summarily closed by the anacron maintainer himself.
|
|
||||||
.
|
|
||||||
More information about this issue is available in
|
|
||||||
/usr/share/doc/fcron/README.Debian
|
|
||||||
Description-fr: Attention : interférences avec anacron !
|
|
||||||
Si le paquet anacron a été supprimé (« removed ») mais non purgé
|
|
||||||
(« purged ») -- ce qui signifie que les fichiers de configuration
|
|
||||||
d'anacron sont toujours présents --, fcron fera des actions
|
|
||||||
inattendues mais sans conséquence, telles que des rapports disant
|
|
||||||
qu'anacron est lancé au démarrage.
|
|
||||||
.
|
|
||||||
N'EFFECTUEZ PAS DE RAPPORT DE BOGUE CONTRE ANACRON SI VOUS AVEZ FCRON
|
|
||||||
INSTALLÉ SUR VOTRE SYSTÈME. Il sera soit réassigné à fcron et fermé
|
|
||||||
sans autre forme de procès par moi-même, soit fermé directement par le
|
|
||||||
responsable d'anacron.
|
|
||||||
.
|
|
||||||
Vous pouvez consulter /usr/share/doc/fcron/README.Debian pour plus
|
|
||||||
d'informations.
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
Template: fcron/anacronwarn
|
|
||||||
Type: note
|
|
||||||
Description-pt_BR: Aviso: interações com anacron!
|
|
||||||
Se você removeu o pacote anacron mas deixou seus arquivos de
|
|
||||||
configuração no sistema (ou seja, não usou "purge"), o pacote fcron
|
|
||||||
irá causar efeitos colaterais inofensivos, tais como anacron dizendo
|
|
||||||
que foi ativado durante a inicialização do sistema.
|
|
||||||
.
|
|
||||||
NÃO REGISTRE DEFEITOS (bugs) CONTRA O PACOTE ANACRON SE VOCÊ INSTALOU
|
|
||||||
O PACOTE FCRON. Eles serão sumariamente deletados ou por mim, ou pelo
|
|
||||||
responsável pelo pacote anacron.
|
|
||||||
.
|
|
||||||
Mais informações sobre o problema podem ser encontradas em
|
|
||||||
/usr/share/doc/fcron/README.Debian
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
Template: fcron/anacronwarn
|
|
||||||
Type: note
|
|
||||||
Description: Warning: interactions with anacron!
|
|
||||||
If you have the anacron package in the 'removed' but not 'purged' state
|
|
||||||
(i.e. anacron configuration files are still around the system), the fcron
|
|
||||||
package will cause harmless side effects, such as reports of anacron being
|
|
||||||
started at boot up.
|
|
||||||
.
|
|
||||||
DO NOT FILE BUGS AGAINST ANACRON IF YOU HAVE FCRON INSTALLED IN THE
|
|
||||||
SYSTEM. They will be either reassigned to fcron to be summarily closed by
|
|
||||||
me, or summarily closed by the anacron maintainer himself.
|
|
||||||
.
|
|
||||||
More information about this issue is available in
|
|
||||||
/usr/share/doc/fcron/README.Debian
|
|
||||||
Description-ru: ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: ×ÚÁÉÍÏÄÅÊÓÔ×ÉÑ Ó anacron!
|
|
||||||
åÓÌÉ ×Ù ÉÍÅÅÔÅ ÐÁËÅÔ anacron × ÓÏÓÔÏÑÎÉÉ 'removed', ÎÏ ÎÅ 'purged'
|
|
||||||
(Ô.Å. ÎÁÓÔÒÏÅÞÎÙÅ ÆÁÊÌÙ anacron ÏÓÔÏÀÔÓÑ × ÓÉÓÔÅÍÅ), ÔÏ ÐÒÉ ÐÁËÅÔÅ
|
|
||||||
fcron ÍÏÇÕÔ ×ÏÚÎÉËÁÔØ ÓÔÏÒÏÎÎÉÅ ÜÆÆÅËÔÙ, ÔÁËÉÅ ËÁË ÏÔÞÅÔÙ anacron ÐÒÉ
|
|
||||||
ÚÁÇÒÕÚËÅ ÓÉÓÔÅÍÙ.
|
|
||||||
.
|
|
||||||
îå óþéôáêôå üôé æáêìù ïûéâëáíé ANACRON, ÅÓÌÉ Õ ×ÁÓ ÷ óéóôåíå
|
|
||||||
õóôáîï÷ìåî FCRON. þÔÏÂÙ ÉÚÂÁ×ÉÔØÓÑ ÏÔ ÜÔÏÊ ÐÒÏÂÌÅÍÙ, ÏÎÉ ÂÕÄÕÔ ÌÉÂÏ
|
|
||||||
ÐÅÒÅÎÁÚÎÁÞÅÎÙ fcron ÍÎÏÀ, ÉÌÉ ÚÁËÒÙÔÙ ÓÁÍÉÍ ÓÏÐÒÏ×ÏÖÄÁÀÝÉÍ anacron.
|
|
||||||
.
|
|
||||||
âÏÌØÛÅ ÉÎÆÏÒÍÁÃÉÉ Ï ÜÔÏÊ ÐÒÏÂÌÅÍÅ ÄÏÓÔÕÐÎÏ × ÆÁÊÌÅ
|
|
||||||
/usr/share/doc/fcron/README.Debian
|
|
||||||
|
|
||||||
|
|
@ -1,243 +0,0 @@
|
||||||
############################
|
|
||||||
# fcron-doc's Makefile ####
|
|
||||||
############################
|
|
||||||
|
|
||||||
# @configure_input@
|
|
||||||
|
|
||||||
|
|
||||||
# The following should not be edited manually (use configure options)
|
|
||||||
# If you must do it, BEWARE: some of the following is also defined
|
|
||||||
# in config.h, so you must modify config.h AND Makefile in order
|
|
||||||
# to set the same values in the two files.
|
|
||||||
|
|
||||||
|
|
||||||
SRCDIR = @srcdir@
|
|
||||||
|
|
||||||
prefix = @prefix@
|
|
||||||
datarootdir = @datarootdir@
|
|
||||||
DESTMAN = @mandir@
|
|
||||||
DESTDOC = @DOCDIR@
|
|
||||||
|
|
||||||
INSTALL = @INSTALL@
|
|
||||||
JADE = @JADE@
|
|
||||||
DB2MAN_BEFORE = @DB2MAN_BEFORE@
|
|
||||||
DB2MAN_AFTER = @DB2MAN_AFTER@
|
|
||||||
|
|
||||||
ROOTNAME = @ROOTNAME@
|
|
||||||
ROOTGROUP = @ROOTGROUP@
|
|
||||||
|
|
||||||
ANSWERALL = @ANSWERALL@
|
|
||||||
|
|
||||||
####################################
|
|
||||||
# Should not be changed under this #
|
|
||||||
####################################
|
|
||||||
STYLESHEET = stylesheets/fcron-doc.dsl
|
|
||||||
MODFILE = fcron-doc.mod
|
|
||||||
VERSION = @VERSION@
|
|
||||||
SGMLFILES = fcron-doc.sgml readme.sgml relnotes.sgml changes.sgml faq.sgml thanks.sgml todo.sgml fcron.8.sgml fcrontab.1.sgml install.sgml fcron.conf.5.sgml fcrontab.5.sgml fcrondyn.1.sgml fdl.sgml gpl.sgml
|
|
||||||
TXTFILES = readme install thanks faq gpl todo relnotes changes
|
|
||||||
MANPAGES = fcron.8 fcron.conf.5 fcrontab.1 fcrontab.5 fcrondyn.1
|
|
||||||
LANGUAGES = en fr
|
|
||||||
|
|
||||||
# this is a regular expression:
|
|
||||||
# do not ci these files
|
|
||||||
RCSNOCI=.*\(bitstring.3\|fcron-doc.ced\|Makefile\|${STYLESHEET}\|fcron-doc.mod\|HTML.*\|txt.*\|man\/.*\|CVS.*\|.git.*\)
|
|
||||||
|
|
||||||
all: doc
|
|
||||||
|
|
||||||
doc:
|
|
||||||
# Build all the HTML, text and manual pages in all the languages
|
|
||||||
@(for i in $(LANGUAGES); \
|
|
||||||
do \
|
|
||||||
test -d $(SRCDIR)/$$i/HTML || mkdir $(SRCDIR)/$$i/HTML ; \
|
|
||||||
test -d $(SRCDIR)/$$i/txt || mkdir $(SRCDIR)/$$i/txt ; \
|
|
||||||
test -d $(SRCDIR)/$$i/man || mkdir $(SRCDIR)/$$i/man ; \
|
|
||||||
$(MAKE) $(SRCDIR)/$$i/HTML/index.html $(SRCDIR)/$$i/txt/readme.txt \
|
|
||||||
$(SRCDIR)/$$i/man/fcron.8 ; \
|
|
||||||
done)
|
|
||||||
|
|
||||||
doc-if-none:
|
|
||||||
# Only generate the doc if there is none (e.g. if the sources came from git
|
|
||||||
# and not a tarball)
|
|
||||||
# The reason we don't try to generate the doc everytime is that we want the user
|
|
||||||
# to be able to compile and install fcron without needing all the tools required
|
|
||||||
# to generate the documentations.
|
|
||||||
#
|
|
||||||
# "make doc" will be called once at max, as all the tests will
|
|
||||||
# succeed after the first time "make doc" is called
|
|
||||||
@(for i in $(LANGUAGES); \
|
|
||||||
do \
|
|
||||||
test -f $(SRCDIR)/$$i/HTML/index.html || $(MAKE) doc ; \
|
|
||||||
test -f $(SRCDIR)/$$i/txt/readme.txt || $(MAKE) doc ; \
|
|
||||||
test -f $(SRCDIR)/$$i/man/fcron.8 || $(MAKE) doc ; \
|
|
||||||
done)
|
|
||||||
|
|
||||||
# man/fcron.8 means in fact "build *all* the man pages"
|
|
||||||
%/man/fcron.8: %/*.sgml fcron-doc.mod ${STYLESHEET}.in
|
|
||||||
@(if test -z "$(DB2MAN_BEFORE)"; then \
|
|
||||||
echo "ERROR: cannot generate man pages." ; \
|
|
||||||
echo " Please check if a db2man converter is installed, or if" \
|
|
||||||
echo " nsgmls, sgmlspl are installed, and if configure's options" \
|
|
||||||
echo " --with-db2man and --with-db2man-spec are correctly set." ; \
|
|
||||||
exit 1 ; \
|
|
||||||
fi)
|
|
||||||
@(echo ; echo "Building $(@D) manual pages..."; echo )
|
|
||||||
@(cp -f bitstring.3 $(@D)/)
|
|
||||||
@(cd $(@D)/../ ; \
|
|
||||||
ln ../fcron-doc.mod ./ ; \
|
|
||||||
for i in $(MANPAGES); do \
|
|
||||||
echo " $(@D)/$$i..."; \
|
|
||||||
echo '<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [<!ENTITY % decl SYSTEM "fcron-doc.mod">%decl;]>' > _tmp_ ; \
|
|
||||||
echo "&$$i;" >> _tmp_ ; \
|
|
||||||
$(DB2MAN_BEFORE) _tmp_ $(DB2MAN_AFTER) > /dev/null 2>&1 ; \
|
|
||||||
rm -f _tmp_ ; \
|
|
||||||
mv `basename $$i .sgml` man/ ; \
|
|
||||||
done ; \
|
|
||||||
rm fcron-doc.mod ; \
|
|
||||||
rm -f manpage.links manpage.refs)
|
|
||||||
|
|
||||||
|
|
||||||
# txt/readme.txt means in fact "build *all* the text pages"
|
|
||||||
%/txt/readme.txt: %/HTML/index.html
|
|
||||||
@(echo ; echo "Building $(@D) files..."; echo )
|
|
||||||
@(for i in $(TXTFILES); do \
|
|
||||||
echo " $(@D)/$$i..."; \
|
|
||||||
lynx -dump -nolist $(@D)/../HTML/$$i.html > $(@D)/$$i.txt; done )
|
|
||||||
|
|
||||||
fcron-doc.mod: fcron-doc.mod.in ../configure.in
|
|
||||||
@(echo ; echo "Building fcron-doc.mod")
|
|
||||||
@(../script/gen-in.pl fcron-doc.mod.in fcron-doc.mod ../)
|
|
||||||
|
|
||||||
# HTML/index.html means in fact "build *all* the HTML pages"
|
|
||||||
%/HTML/index.html: %/*.sgml fcron-doc.mod ${STYLESHEET}.in
|
|
||||||
@(echo ; echo "Building $(@D)...")
|
|
||||||
@(rm -fR $(@D)/*.html)
|
|
||||||
@(cd $(@D)/../ ; $(JADE) -D ../ -D ./ -t sgml -i html -d ../${STYLESHEET}\#html fcron-doc.sgml)
|
|
||||||
|
|
||||||
install: install-staged perms
|
|
||||||
|
|
||||||
install-staged: doc-if-none clean
|
|
||||||
@(echo "Installing man pages in $(DESTDIR)$(DESTMAN)...")
|
|
||||||
@(for l in $(LANGUAGES); do \
|
|
||||||
if test "x$$l" = "xen"; then \
|
|
||||||
DIR=$(DESTDIR)$(DESTMAN); \
|
|
||||||
else \
|
|
||||||
DIR=$(DESTDIR)$(DESTMAN)/$$l; \
|
|
||||||
fi ; \
|
|
||||||
for i in 1 3 5 8; do \
|
|
||||||
if test ! -d $$DIR/man$$i; then \
|
|
||||||
$(INSTALL) -m 755 -d $$DIR/man$$i ; \
|
|
||||||
fi ; \
|
|
||||||
for m in $(SRCDIR)/$$l/man/*.$$i; do \
|
|
||||||
$(INSTALL) -m 644 $$m $$DIR/man$$i ; \
|
|
||||||
done ; \
|
|
||||||
done ; \
|
|
||||||
done )
|
|
||||||
|
|
||||||
@(echo "Installing documentation files in $(DESTDIR)$(DESTDOC)/fcron-$(VERSION)...")
|
|
||||||
@(if test ! -d $(DESTDIR)$(DESTDOC)/fcron-$(VERSION); then $(INSTALL) -m 755 -d $(DESTDIR)$(DESTDOC)/fcron-$(VERSION) ; fi)
|
|
||||||
|
|
||||||
@(for l in $(LANGUAGES); do \
|
|
||||||
DIR=$(DESTDIR)$(DESTDOC)/fcron-$(VERSION) ; \
|
|
||||||
if test ! -d $$DIR/$$l; then \
|
|
||||||
$(INSTALL) -m 755 -d $$DIR/$$l ; \
|
|
||||||
fi ; \
|
|
||||||
for i in txt HTML; do \
|
|
||||||
if test ! -d $$DIR/$$l/$$i; then \
|
|
||||||
$(INSTALL) -m 755 -d $$DIR/$$l/$$i ; \
|
|
||||||
fi ; \
|
|
||||||
for m in $(SRCDIR)/$$l/$$i/* ; do \
|
|
||||||
$(INSTALL) -m 644 $$m $$DIR/$$l/$$i/ ;\
|
|
||||||
done ; \
|
|
||||||
done ; \
|
|
||||||
done )
|
|
||||||
|
|
||||||
perms:
|
|
||||||
for l in $(LANGUAGES); do \
|
|
||||||
if test "x$$l" = "xen"; then \
|
|
||||||
DIR=$(DESTDIR)$(DESTMAN); \
|
|
||||||
else \
|
|
||||||
DIR=$(DESTDIR)$(DESTMAN)/$$l; \
|
|
||||||
fi ; \
|
|
||||||
chown $(ROOTNAME) $$DIR; \
|
|
||||||
chgrp $(ROOTGROUP) $$DIR; \
|
|
||||||
for i in 1 3 5 8; do \
|
|
||||||
chown $(ROOTNAME) $$DIR/man$$i; \
|
|
||||||
chgrp $(ROOTGROUP) $$DIR/man$$i; \
|
|
||||||
done ; \
|
|
||||||
for f in man1/fcrontab.1 man1/fcrondyn.1 man3/bitstring.3 \
|
|
||||||
man5/fcrontab.5 man5/fcron.conf.5 man8/fcron.8 ; do \
|
|
||||||
chown $(ROOTNAME) $$DIR/$$f; \
|
|
||||||
chgrp $(ROOTGROUP) $$DIR/$$f; \
|
|
||||||
done ; \
|
|
||||||
done
|
|
||||||
chown $(ROOTNAME) $(DESTDIR)$(DESTDOC)
|
|
||||||
chgrp $(ROOTGROUP) $(DESTDIR)$(DESTDOC)
|
|
||||||
chown $(ROOTNAME) $(DESTDIR)$(DESTDOC)/fcron-$(VERSION)
|
|
||||||
chgrp $(ROOTGROUP) $(DESTDIR)$(DESTDOC)/fcron-$(VERSION)
|
|
||||||
for l in $(LANGUAGES); do \
|
|
||||||
DIR=$(DESTDIR)$(DESTDOC)/fcron-$(VERSION)/$$l ; \
|
|
||||||
chown $(ROOTNAME) $$DIR ; \
|
|
||||||
chgrp $(ROOTGROUP) $$DIR ; \
|
|
||||||
for i in txt HTML; do \
|
|
||||||
chown $(ROOTNAME) $$DIR/$$i; \
|
|
||||||
chgrp $(ROOTGROUP) $$DIR/$$i; \
|
|
||||||
chown $(ROOTNAME) $$DIR/$$i/*; \
|
|
||||||
chgrp $(ROOTGROUP) $$DIR/$$i/*; \
|
|
||||||
done ; \
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
uninstall:
|
|
||||||
rm -fR $(DESTDOC)/fcron-$(VERSION)
|
|
||||||
@(echo "Removing man pages ...")
|
|
||||||
@(for l in $(LANGUAGES); do \
|
|
||||||
if test "x$$l" = "xen"; then \
|
|
||||||
DIR=$(DESTDIR)$(DESTMAN); \
|
|
||||||
else \
|
|
||||||
DIR=$(DESTDIR)$(DESTMAN)/$$l; \
|
|
||||||
fi ; \
|
|
||||||
rm -f $$DIR/man1/fcrontab.1 ; \
|
|
||||||
rm -f $$DIR/man1/fcrondyn.1 ; \
|
|
||||||
rm -f $$DIR/man3/bitstring.3 ; \
|
|
||||||
rm -f $$DIR/man5/fcrontab.5 ; \
|
|
||||||
rm -f $$DIR/man5/fcron.conf.5 ; \
|
|
||||||
rm -f $$DIR/man8/fcron.8 ; \
|
|
||||||
done )
|
|
||||||
|
|
||||||
|
|
||||||
clean:
|
|
||||||
@(cd $(SRCDIR) ; \
|
|
||||||
BASEDIR=`pwd` ; \
|
|
||||||
for i in stylesheets $(LANGUAGES) . ; do \
|
|
||||||
cd $$i ; \
|
|
||||||
echo "Cleaning: `pwd`"; \
|
|
||||||
rm -f *~ *.html *.htm *.texi *.info *.refs manpage.links manpage.refs \
|
|
||||||
core *.tar.gz ; \
|
|
||||||
cd $$BASEDIR ; \
|
|
||||||
done)
|
|
||||||
|
|
||||||
tarclean: clean
|
|
||||||
rm -f Makefile ${STYLESHEET} fcron-doc.mod
|
|
||||||
|
|
||||||
vclean: clean
|
|
||||||
# rm -f */HTML/* */man/* */txt/*
|
|
||||||
rm -f Makefile ${STYLESHEET}
|
|
||||||
|
|
||||||
ci: clean
|
|
||||||
# we run a "cd .." because it makes the path of the file appear ( ./doc/XXXX )
|
|
||||||
# during the ci-ing
|
|
||||||
# the symbolic links verX_X_X has been created since version 2.9.4
|
|
||||||
@(cd ..; find ./doc/ -type f ! -regex '.*RCS.*' ! -regex "$(RCSNOCI)" \
|
|
||||||
-exec ci -l -Nver`echo $(VERSION) | tr '.' '_'` {} \;)
|
|
||||||
|
|
||||||
tarhtmldoc: doc
|
|
||||||
for i in $(LANGUAGES); do \
|
|
||||||
cd $$i ; \
|
|
||||||
mkdir fcron-$(VERSION)-doc-$$i-html ;\
|
|
||||||
cp HTML/*.html fcron-$(VERSION)-doc-$$i-html ;\
|
|
||||||
rm -f fcron-doc-$$i-html.tar.gz ;\
|
|
||||||
tar -czvf fcron-doc-$$i-html.tar.gz fcron-$(VERSION)-doc-$$i-html/* ;\
|
|
||||||
rm -fR fcron-$(VERSION)-doc-$$i-html ; \
|
|
||||||
cd .. ; \
|
|
||||||
done
|
|
||||||
|
|
@ -1,168 +0,0 @@
|
||||||
.\" Copyright (c) 1989 The Regents of the University of California.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" This code is derived from software contributed to Berkeley by
|
|
||||||
.\" Paul Vixie.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms are permitted
|
|
||||||
.\" provided that the above copyright notice and this paragraph are
|
|
||||||
.\" duplicated in all such forms and that any documentation,
|
|
||||||
.\" advertising materials, and other materials related to such
|
|
||||||
.\" distribution and use acknowledge that the software was developed
|
|
||||||
.\" by the University of California, Berkeley. The name of the
|
|
||||||
.\" University may not be used to endorse or promote products derived
|
|
||||||
.\" from this software without specific prior written permission.
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
|
|
||||||
.\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
|
||||||
.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
.\"
|
|
||||||
.\" @(#)bitstring.3 5.1 (Berkeley) 12/13/89
|
|
||||||
.\"
|
|
||||||
.TH BITSTRING 3 "December 13, 1989"
|
|
||||||
.UC 4
|
|
||||||
.SH NAME
|
|
||||||
bit_alloc, bit_clear, bit_decl, bit_ffs, bit_nclear, bit_nset,
|
|
||||||
bit_set, bitstr_size, bit_test \- bit-string manipulation macros
|
|
||||||
.SH SYNOPSIS
|
|
||||||
.ft B
|
|
||||||
.nf
|
|
||||||
#include <bitstring.h>
|
|
||||||
|
|
||||||
name = bit_alloc(nbits)
|
|
||||||
bitstr_t *name;
|
|
||||||
int nbits;
|
|
||||||
|
|
||||||
bit_decl(name, nbits)
|
|
||||||
bitstr_t name;
|
|
||||||
int nbits;
|
|
||||||
|
|
||||||
bit_clear(name, bit)
|
|
||||||
bitstr_t name;
|
|
||||||
int bit;
|
|
||||||
|
|
||||||
bit_ffc(name, nbits, value)
|
|
||||||
bitstr_t name;
|
|
||||||
int nbits, *value;
|
|
||||||
|
|
||||||
bit_ffs(name, nbits, value)
|
|
||||||
bitstr_t name;
|
|
||||||
int nbits, *value;
|
|
||||||
|
|
||||||
bit_nclear(name, start, stop)
|
|
||||||
bitstr_t name;
|
|
||||||
int start, stop;
|
|
||||||
|
|
||||||
bit_nset(name, start, stop)
|
|
||||||
bitstr_t name;
|
|
||||||
int start, stop;
|
|
||||||
|
|
||||||
bit_set(name, bit)
|
|
||||||
bitstr_t name;
|
|
||||||
int bit;
|
|
||||||
|
|
||||||
bitstr_size(nbits)
|
|
||||||
int nbits;
|
|
||||||
|
|
||||||
bit_test(name, bit)
|
|
||||||
bitstr_t name;
|
|
||||||
int bit;
|
|
||||||
.fi
|
|
||||||
.ft R
|
|
||||||
.SH DESCRIPTION
|
|
||||||
These macros operate on strings of bits.
|
|
||||||
.PP
|
|
||||||
.I Bit_alloc
|
|
||||||
returns a pointer of type
|
|
||||||
.I bitstr_t\ *
|
|
||||||
to sufficient space to store
|
|
||||||
.I nbits
|
|
||||||
bits, or NULL if no space is available.
|
|
||||||
.PP
|
|
||||||
.I Bit_decl
|
|
||||||
is a macro for allocating sufficient space to store
|
|
||||||
.I nbits
|
|
||||||
bits on the stack.
|
|
||||||
.PP
|
|
||||||
.I Bitstr_size
|
|
||||||
returns the number of elements of type
|
|
||||||
.I bitstr_t
|
|
||||||
necessary to store
|
|
||||||
.I nbits
|
|
||||||
bits.
|
|
||||||
This is useful for copying bit strings.
|
|
||||||
.PP
|
|
||||||
.I Bit_clear
|
|
||||||
and
|
|
||||||
.I bit_set
|
|
||||||
clear or set the zero-based numbered bit
|
|
||||||
.IR bit ,
|
|
||||||
in the bit string
|
|
||||||
.IR name .
|
|
||||||
.PP
|
|
||||||
.I Bit_nset
|
|
||||||
and
|
|
||||||
.I bit_nclear
|
|
||||||
set or clear the zero-based numbered bits from
|
|
||||||
.I start
|
|
||||||
to
|
|
||||||
.I stop
|
|
||||||
in the bit string
|
|
||||||
.IR name .
|
|
||||||
.PP
|
|
||||||
.I Bit_test
|
|
||||||
evaluates to zero if the zero-based numbered bit
|
|
||||||
.I bit
|
|
||||||
of bit string
|
|
||||||
.I name
|
|
||||||
is set, and non-zero otherwise.
|
|
||||||
.PP
|
|
||||||
.I Bit_ffs
|
|
||||||
sets
|
|
||||||
.I *value
|
|
||||||
to the zero-based number of the first bit set in the array of
|
|
||||||
.I nbits
|
|
||||||
bits referenced by
|
|
||||||
.IR name .
|
|
||||||
If no bits are set,
|
|
||||||
.I *value
|
|
||||||
is set to -1.
|
|
||||||
.PP
|
|
||||||
.I Bit_ffc
|
|
||||||
sets
|
|
||||||
.I *value
|
|
||||||
to the zero-based number of the first bit not set in the array of
|
|
||||||
.I nbits
|
|
||||||
bits referenced by
|
|
||||||
.IR name .
|
|
||||||
If all bits are set,
|
|
||||||
.I value
|
|
||||||
is set to -1.
|
|
||||||
.SH EXAMPLE
|
|
||||||
.nf
|
|
||||||
.in +5
|
|
||||||
#include <limits.h>
|
|
||||||
#include <bitstring.h>
|
|
||||||
|
|
||||||
...
|
|
||||||
#define LPR_BUSY_BIT 0
|
|
||||||
#define LPR_FORMAT_BIT 1
|
|
||||||
#define LPR_DOWNLOAD_BIT 2
|
|
||||||
...
|
|
||||||
#define LPR_AVAILABLE_BIT 9
|
|
||||||
#define LPR_MAX_BITS 10
|
|
||||||
|
|
||||||
make_lpr_available()
|
|
||||||
{
|
|
||||||
bitstr_t bit_decl(bitlist, LPR_MAX_BITS);
|
|
||||||
...
|
|
||||||
bit_nclear(bitlist, 0, LPR_MAX_BITS - 1);
|
|
||||||
...
|
|
||||||
if (!bit_test(bitlist, LPR_BUSY_BIT)) {
|
|
||||||
bit_clear(bitlist, LPR_FORMAT_BIT);
|
|
||||||
bit_clear(bitlist, LPR_DOWNLOAD_BIT);
|
|
||||||
bit_set(bitlist, LPR_AVAILABLE_BIT);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.fi
|
|
||||||
.SH "SEE ALSO"
|
|
||||||
malloc(3)
|
|
||||||
|
|
@ -1,142 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<HTML
|
|
||||||
><HEAD
|
|
||||||
><META
|
|
||||||
NAME="GENERATOR"
|
|
||||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
|
||||||
REL="HOME"
|
|
||||||
TITLE="Fcron documentation"
|
|
||||||
HREF="index.html"><LINK
|
|
||||||
REL="NEXT"
|
|
||||||
TITLE="Fcron: how and why?"
|
|
||||||
HREF="how-and-why.html"></HEAD
|
|
||||||
><BODY
|
|
||||||
BGCOLOR="#FFFFFF"
|
|
||||||
TEXT="#000000"
|
|
||||||
LINK="#0000FF"
|
|
||||||
VLINK="#840084"
|
|
||||||
ALINK="#0000FF"
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVHEADER"
|
|
||||||
><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="LEGALNOTICE.html"
|
|
||||||
>Copyright</A
|
|
||||||
> © 2000-2014 <A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>Thibault Godouet</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="20%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
>Fcron 3.2.0 </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>Web page : <A
|
|
||||||
HREF="http://fcron.free.fr"
|
|
||||||
>http://fcron.free.fr</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TH
|
|
||||||
COLSPAN="3"
|
|
||||||
ALIGN="center"
|
|
||||||
>Fcron documentation</TH
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="LEGALNOTICE"
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><A
|
|
||||||
NAME="LEGALNOTICE"
|
|
||||||
></A
|
|
||||||
><P
|
|
||||||
><I
|
|
||||||
CLASS="CITETITLE"
|
|
||||||
>Fcron documentation</I
|
|
||||||
> Copyright ©
|
|
||||||
2000-2014 Thibault Godouet, <CODE
|
|
||||||
CLASS="EMAIL"
|
|
||||||
><<A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>fcron@free.fr</A
|
|
||||||
>></CODE
|
|
||||||
></P
|
|
||||||
><P
|
|
||||||
>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 <A
|
|
||||||
HREF="#backcover"
|
|
||||||
TARGET="_top"
|
|
||||||
>Back Cover Text</A
|
|
||||||
>. A copy of the license is included in
|
|
||||||
<A
|
|
||||||
HREF="fdl.html"
|
|
||||||
>Appendix B</A
|
|
||||||
>.</P
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVFOOTER"
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Footer navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
> </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="index.html"
|
|
||||||
ACCESSKEY="H"
|
|
||||||
>Home</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
> </TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></DIV
|
|
||||||
></BODY
|
|
||||||
></HTML
|
|
||||||
>
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -1,684 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<HTML
|
|
||||||
><HEAD
|
|
||||||
><TITLE
|
|
||||||
>fcron.conf</TITLE
|
|
||||||
><META
|
|
||||||
NAME="GENERATOR"
|
|
||||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
|
||||||
REL="HOME"
|
|
||||||
TITLE="Fcron documentation"
|
|
||||||
HREF="index.html"><LINK
|
|
||||||
REL="UP"
|
|
||||||
TITLE="Manual pages of fcron"
|
|
||||||
HREF="manpages.html"><LINK
|
|
||||||
REL="PREVIOUS"
|
|
||||||
TITLE="fcron"
|
|
||||||
HREF="fcron.8.html"><LINK
|
|
||||||
REL="NEXT"
|
|
||||||
TITLE="fcrontab"
|
|
||||||
HREF="fcrontab.1.html"></HEAD
|
|
||||||
><BODY
|
|
||||||
CLASS="REFENTRY"
|
|
||||||
BGCOLOR="#FFFFFF"
|
|
||||||
TEXT="#000000"
|
|
||||||
LINK="#0000FF"
|
|
||||||
VLINK="#840084"
|
|
||||||
ALINK="#0000FF"
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVHEADER"
|
|
||||||
><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="LEGALNOTICE.html"
|
|
||||||
>Copyright</A
|
|
||||||
> © 2000-2014 <A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>Thibault Godouet</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="20%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
>Fcron 3.2.0 </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>Web page : <A
|
|
||||||
HREF="http://fcron.free.fr"
|
|
||||||
>http://fcron.free.fr</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TH
|
|
||||||
COLSPAN="3"
|
|
||||||
ALIGN="center"
|
|
||||||
>Fcron documentation</TH
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="fcron.8.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="80%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="bottom"
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="fcrontab.1.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"></DIV
|
|
||||||
><H1
|
|
||||||
><A
|
|
||||||
NAME="FCRON.CONF.5"
|
|
||||||
></A
|
|
||||||
>fcron.conf</H1
|
|
||||||
><DIV
|
|
||||||
CLASS="REFNAMEDIV"
|
|
||||||
><A
|
|
||||||
NAME="AEN1421"
|
|
||||||
></A
|
|
||||||
><H2
|
|
||||||
>Name</H2
|
|
||||||
>fcron.conf -- configuration file for fcron and fcrontab</DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="REFSECT1"
|
|
||||||
><A
|
|
||||||
NAME="AEN1424"
|
|
||||||
></A
|
|
||||||
><H2
|
|
||||||
>Description</H2
|
|
||||||
><BLOCKQUOTE
|
|
||||||
CLASS="ABSTRACT"
|
|
||||||
><DIV
|
|
||||||
CLASS="ABSTRACT"
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><A
|
|
||||||
NAME="AEN1426"
|
|
||||||
></A
|
|
||||||
><P
|
|
||||||
>This page describes the syntax used for the configuration file
|
|
||||||
of <A
|
|
||||||
HREF="fcrontab.1.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
></A
|
|
||||||
>(1), <A
|
|
||||||
HREF="fcrondyn.1.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrondyn</SPAN
|
|
||||||
></A
|
|
||||||
>(1) and <A
|
|
||||||
HREF="fcron.8.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
></A
|
|
||||||
>(8).</P
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
></DIV
|
|
||||||
></BLOCKQUOTE
|
|
||||||
><P
|
|
||||||
>Blank lines, line beginning by a hash sign (#) (which are
|
|
||||||
considered comments), leading blanks and tabs are ignored. Each line in a
|
|
||||||
<SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcron.conf</SPAN
|
|
||||||
> file is of the form
|
|
||||||
<A
|
|
||||||
NAME="AEN1436"
|
|
||||||
></A
|
|
||||||
><BLOCKQUOTE
|
|
||||||
CLASS="BLOCKQUOTE"
|
|
||||||
><P
|
|
||||||
>name = value</P
|
|
||||||
></BLOCKQUOTE
|
|
||||||
> where the blanks around equal-sign (=) are ignored and
|
|
||||||
optional. Trailing blanks are also ignored.</P
|
|
||||||
><P
|
|
||||||
>The following names are recognized (default value in parentheses):
|
|
||||||
<P
|
|
||||||
></P
|
|
||||||
><DIV
|
|
||||||
CLASS="VARIABLELIST"
|
|
||||||
><P
|
|
||||||
><B
|
|
||||||
>Valid variables in a fcron.conf file</B
|
|
||||||
></P
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><CODE
|
|
||||||
CLASS="VARNAME"
|
|
||||||
>fcrontabs</CODE
|
|
||||||
>=<TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>directory</I
|
|
||||||
></TT
|
|
||||||
>
|
|
||||||
(<TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/var/spool/fcron</TT
|
|
||||||
>)</B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>Fcron</SPAN
|
|
||||||
> spool directory.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><CODE
|
|
||||||
CLASS="VARNAME"
|
|
||||||
>pidfile</CODE
|
|
||||||
>=<TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>file-path</I
|
|
||||||
></TT
|
|
||||||
>
|
|
||||||
(<TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/var/run/fcron.pid</TT
|
|
||||||
>)</B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Location of <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> pid file (needed by <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
>
|
|
||||||
to work properly).</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><CODE
|
|
||||||
CLASS="VARNAME"
|
|
||||||
>fifofile</CODE
|
|
||||||
>=<TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>file-path</I
|
|
||||||
></TT
|
|
||||||
>
|
|
||||||
(<TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/var/run/fcron.fifo</TT
|
|
||||||
>)</B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Location of <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> fifo file (needed by
|
|
||||||
<SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrondyn</SPAN
|
|
||||||
> to communicate with <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
>).</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><CODE
|
|
||||||
CLASS="VARNAME"
|
|
||||||
>fcronallow</CODE
|
|
||||||
>=<TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>file-path</I
|
|
||||||
></TT
|
|
||||||
>
|
|
||||||
(<TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/etc/fcron.allow</TT
|
|
||||||
>)</B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Location of fcron.allow file.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><CODE
|
|
||||||
CLASS="VARNAME"
|
|
||||||
>fcrondeny</CODE
|
|
||||||
>=<TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>file-path</I
|
|
||||||
></TT
|
|
||||||
>
|
|
||||||
(<TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/etc/fcron.deny</TT
|
|
||||||
>)</B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Location of fcron.deny file.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><CODE
|
|
||||||
CLASS="VARNAME"
|
|
||||||
>shell</CODE
|
|
||||||
>=<TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>file-path</I
|
|
||||||
></TT
|
|
||||||
>
|
|
||||||
(<TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/bin/sh</TT
|
|
||||||
>)</B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Location of default shell called by <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> when
|
|
||||||
running a job. When <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> runs a job, <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> uses the value of <CODE
|
|
||||||
CLASS="ENVAR"
|
|
||||||
>SHELL</CODE
|
|
||||||
> from the fcrontab if any, otherwise it uses the value from <TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>fcron.conf</TT
|
|
||||||
> if any, or in last resort the value from <TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/etc/passwd</TT
|
|
||||||
>.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><CODE
|
|
||||||
CLASS="VARNAME"
|
|
||||||
>sendmail</CODE
|
|
||||||
>=<TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>file-path</I
|
|
||||||
></TT
|
|
||||||
>
|
|
||||||
(<TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/sbin/sendmail</TT
|
|
||||||
>)</B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Location of mailer program called by <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> to
|
|
||||||
send job output.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><CODE
|
|
||||||
CLASS="VARNAME"
|
|
||||||
>editor</CODE
|
|
||||||
>=<TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>file-path</I
|
|
||||||
></TT
|
|
||||||
>
|
|
||||||
(<TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/bin/vi</TT
|
|
||||||
>)</B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Location of default editor used when invoking
|
|
||||||
"fcrontab -e".</P
|
|
||||||
></DD
|
|
||||||
></DL
|
|
||||||
></DIV
|
|
||||||
> File-paths and directories are complete and absolute
|
|
||||||
(i.e. beginning by a "/").</P
|
|
||||||
><P
|
|
||||||
>To run several instances of <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> simultaneously on the same
|
|
||||||
system, you must use a different configuration file for each instance. Each
|
|
||||||
instance must have a different <CODE
|
|
||||||
CLASS="VARNAME"
|
|
||||||
>fcrontabs</CODE
|
|
||||||
>,
|
|
||||||
<CODE
|
|
||||||
CLASS="VARNAME"
|
|
||||||
>pidfile</CODE
|
|
||||||
> and <CODE
|
|
||||||
CLASS="VARNAME"
|
|
||||||
>fifofile</CODE
|
|
||||||
>. Then, use <A
|
|
||||||
HREF="fcron.8.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
></A
|
|
||||||
>(8)'s command line option
|
|
||||||
<CODE
|
|
||||||
CLASS="PARAMETER"
|
|
||||||
>-c</CODE
|
|
||||||
> to select which config file (so which instance) you
|
|
||||||
refer to.</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="REFSECT1"
|
|
||||||
><A
|
|
||||||
NAME="AEN1518"
|
|
||||||
></A
|
|
||||||
><H2
|
|
||||||
>Files</H2
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><DIV
|
|
||||||
CLASS="VARIABLELIST"
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/etc/fcron.conf</TT
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Configuration file for <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
>, <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
> and
|
|
||||||
<SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrondyn</SPAN
|
|
||||||
>: contains paths (spool dir, pid file) and default programs to use
|
|
||||||
(editor, shell, etc). See <A
|
|
||||||
HREF="fcron.conf.5.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcron.conf</SPAN
|
|
||||||
></A
|
|
||||||
>(5) for
|
|
||||||
more details.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/etc/fcron.allow</TT
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Users allowed to use <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
> and <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrondyn</SPAN
|
|
||||||
> (one
|
|
||||||
name per line, special name "all" acts for everyone)</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/etc/fcron.deny</TT
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Users who are not allowed to use <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
> and
|
|
||||||
<SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrondyn</SPAN
|
|
||||||
> (same format as allow file)</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/etc/pam.d/fcron</TT
|
|
||||||
> (or
|
|
||||||
<TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/etc/pam.conf</TT
|
|
||||||
>)</B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>PAM</SPAN
|
|
||||||
> configuration file for
|
|
||||||
<SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
>. Take a look at <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>pam</SPAN
|
|
||||||
>(8) for more details.</P
|
|
||||||
></DD
|
|
||||||
></DL
|
|
||||||
></DIV
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="REFSECT1"
|
|
||||||
><A
|
|
||||||
NAME="AEN1554"
|
|
||||||
></A
|
|
||||||
><H2
|
|
||||||
>See also</H2
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><TABLE
|
|
||||||
BORDER="0"
|
|
||||||
><TBODY
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
><A
|
|
||||||
HREF="fcrontab.1.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
>(1),</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
><A
|
|
||||||
HREF="fcrondyn.1.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrondyn</SPAN
|
|
||||||
>(1),</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
><A
|
|
||||||
HREF="fcrontab.5.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
>(5),</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
><A
|
|
||||||
HREF="fcron.conf.5.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcron.conf</SPAN
|
|
||||||
>(5),</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
><A
|
|
||||||
HREF="fcron.8.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
>(8).</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
>If you're learning how to use fcron from scratch, I suggest
|
|
||||||
that you read the HTML version of the documentation (if your are not reading it
|
|
||||||
right now! :) ): the content is the same, but it is easier to navigate thanks
|
|
||||||
to the hyperlinks.</TD
|
|
||||||
></TR
|
|
||||||
></TBODY
|
|
||||||
></TABLE
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="REFSECT1"
|
|
||||||
><A
|
|
||||||
NAME="AEN1573"
|
|
||||||
></A
|
|
||||||
><H2
|
|
||||||
>Author</H2
|
|
||||||
><P
|
|
||||||
>Thibault Godouet <CODE
|
|
||||||
CLASS="EMAIL"
|
|
||||||
><<A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>fcron@free.fr</A
|
|
||||||
>></CODE
|
|
||||||
></P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVFOOTER"
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Footer navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="fcron.8.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="index.html"
|
|
||||||
ACCESSKEY="H"
|
|
||||||
>Home</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="fcrontab.1.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
>fcron</TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="manpages.html"
|
|
||||||
ACCESSKEY="U"
|
|
||||||
>Up</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>fcrontab</TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></DIV
|
|
||||||
></BODY
|
|
||||||
></HTML
|
|
||||||
>
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,858 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<HTML
|
|
||||||
><HEAD
|
|
||||||
><TITLE
|
|
||||||
>fcrontab</TITLE
|
|
||||||
><META
|
|
||||||
NAME="GENERATOR"
|
|
||||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
|
||||||
REL="HOME"
|
|
||||||
TITLE="Fcron documentation"
|
|
||||||
HREF="index.html"><LINK
|
|
||||||
REL="UP"
|
|
||||||
TITLE="Manual pages of fcron"
|
|
||||||
HREF="manpages.html"><LINK
|
|
||||||
REL="PREVIOUS"
|
|
||||||
TITLE="fcron.conf"
|
|
||||||
HREF="fcron.conf.5.html"><LINK
|
|
||||||
REL="NEXT"
|
|
||||||
TITLE="fcrontab"
|
|
||||||
HREF="fcrontab.5.html"></HEAD
|
|
||||||
><BODY
|
|
||||||
CLASS="REFENTRY"
|
|
||||||
BGCOLOR="#FFFFFF"
|
|
||||||
TEXT="#000000"
|
|
||||||
LINK="#0000FF"
|
|
||||||
VLINK="#840084"
|
|
||||||
ALINK="#0000FF"
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVHEADER"
|
|
||||||
><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="LEGALNOTICE.html"
|
|
||||||
>Copyright</A
|
|
||||||
> © 2000-2014 <A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>Thibault Godouet</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="20%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
>Fcron 3.2.0 </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>Web page : <A
|
|
||||||
HREF="http://fcron.free.fr"
|
|
||||||
>http://fcron.free.fr</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TH
|
|
||||||
COLSPAN="3"
|
|
||||||
ALIGN="center"
|
|
||||||
>Fcron documentation</TH
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="fcron.conf.5.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="80%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="bottom"
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="fcrontab.5.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"></DIV
|
|
||||||
><H1
|
|
||||||
><A
|
|
||||||
NAME="FCRONTAB.1"
|
|
||||||
></A
|
|
||||||
>fcrontab</H1
|
|
||||||
><DIV
|
|
||||||
CLASS="REFNAMEDIV"
|
|
||||||
><A
|
|
||||||
NAME="AEN1583"
|
|
||||||
></A
|
|
||||||
><H2
|
|
||||||
>Name</H2
|
|
||||||
>fcrontab -- manipulate per-user fcrontab
|
|
||||||
files</DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="REFSYNOPSISDIV"
|
|
||||||
><A
|
|
||||||
NAME="FCRONTAB.1.SYNOPSIS"
|
|
||||||
></A
|
|
||||||
><H2
|
|
||||||
>Synopsis</H2
|
|
||||||
><P
|
|
||||||
><B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>fcrontab</B
|
|
||||||
> [-c
|
|
||||||
<TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>file</I
|
|
||||||
></TT
|
|
||||||
>] [-n] <TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>file</I
|
|
||||||
></TT
|
|
||||||
> [<TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>user</I
|
|
||||||
></TT
|
|
||||||
> | -u
|
|
||||||
<TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>user</I
|
|
||||||
></TT
|
|
||||||
>]</P
|
|
||||||
><P
|
|
||||||
><B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>fcrontab</B
|
|
||||||
> [-c
|
|
||||||
<TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>file</I
|
|
||||||
></TT
|
|
||||||
>] [-n] {-l | -r | -e | -z} [<TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>user</I
|
|
||||||
></TT
|
|
||||||
> | -u
|
|
||||||
<TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>user</I
|
|
||||||
></TT
|
|
||||||
>]</P
|
|
||||||
><P
|
|
||||||
><B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>fcrontab</B
|
|
||||||
> [-h]</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="REFSECT1"
|
|
||||||
><A
|
|
||||||
NAME="AEN1617"
|
|
||||||
></A
|
|
||||||
><H2
|
|
||||||
>Description</H2
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>Fcrontab</SPAN
|
|
||||||
> is the program intended to
|
|
||||||
install, edit, list and remove the tables used by <A
|
|
||||||
HREF="fcron.8.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
>(8)</A
|
|
||||||
> daemon. As <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> internally
|
|
||||||
uses a non-human readable format (this is needed because <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
>
|
|
||||||
saves more informations than the user gives, for example the time
|
|
||||||
and date of next execution), the user cannot edit directly his
|
|
||||||
<SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
> (the one used by <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
>).</P
|
|
||||||
><P
|
|
||||||
>When a user
|
|
||||||
installs a <SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
>, the source file is saved in the spool
|
|
||||||
directory (<TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/var/spool/fcron</TT
|
|
||||||
>) to allow future
|
|
||||||
editions, and a formatted file is generated for the <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> daemon,
|
|
||||||
which is signaled once about ten seconds before the next minute for
|
|
||||||
all changes made previously. The daemon is not informed of the changes
|
|
||||||
immediately but at most once a minute
|
|
||||||
to keep ill disposed users from blocking the daemon by installing
|
|
||||||
<SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
>s over and over (ie. denial of service attack). We will call
|
|
||||||
"<EM
|
|
||||||
>fcrontab</EM
|
|
||||||
>" the source file of the <SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
>
|
|
||||||
in the following.</P
|
|
||||||
><P
|
|
||||||
>A user can install a <SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
> if
|
|
||||||
he is listed in the <TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/etc/fcron.allow</TT
|
|
||||||
> and not
|
|
||||||
(unless by the keyword all) listed in
|
|
||||||
<TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/etc/fcron.deny</TT
|
|
||||||
> (see section "<A
|
|
||||||
HREF="fcrontab.1.html#FCRONTAB.1.FILES"
|
|
||||||
>files</A
|
|
||||||
>" below). If neither
|
|
||||||
<TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>fcron.allow</TT
|
|
||||||
> nor <TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>fcron.deny</TT
|
|
||||||
>
|
|
||||||
exist, all users are allowed. None of these files have to exist, but
|
|
||||||
if they do, the deny file takes precedence.</P
|
|
||||||
><P
|
|
||||||
>The first
|
|
||||||
form of the command is used to install a new <SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
> file, from
|
|
||||||
any named file or from standard input if the pseudo-filename "-" is
|
|
||||||
given, replacing the previous one (if any): each user can have only
|
|
||||||
one <SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
>.</P
|
|
||||||
><P
|
|
||||||
>For instance, root can create a
|
|
||||||
systemwide fcrontab file, say <TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/etc/fcrontab</TT
|
|
||||||
>,
|
|
||||||
and run "<B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>fcrontab</B
|
|
||||||
>
|
|
||||||
<TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/etc/fcrontab</TT
|
|
||||||
>" to install the new version after
|
|
||||||
each change of the file. Or (s)he can create a new fcrontab running
|
|
||||||
a simple "<B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>fcrontab</B
|
|
||||||
>", and then maintain it using
|
|
||||||
"<B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>fcrontab</B
|
|
||||||
> <CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>-e</CODE
|
|
||||||
>". Same
|
|
||||||
considerations apply to a non privileged user.</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="REFSECT1"
|
|
||||||
><A
|
|
||||||
NAME="AEN1651"
|
|
||||||
></A
|
|
||||||
><H2
|
|
||||||
>Options</H2
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><DIV
|
|
||||||
CLASS="VARIABLELIST"
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>-u</CODE
|
|
||||||
> <TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>user</I
|
|
||||||
></TT
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Specify the user whose <SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
> will be managed, or
|
|
||||||
"systab" for the system fcrontab. Should only be
|
|
||||||
used by root. If not given, the <SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
> file of the
|
|
||||||
user invoking <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
> will be handled. It may be useful
|
|
||||||
since the <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>su</SPAN
|
|
||||||
>(8) command may
|
|
||||||
confuse <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
>. <DIV
|
|
||||||
CLASS="NOTE"
|
|
||||||
><BLOCKQUOTE
|
|
||||||
CLASS="NOTE"
|
|
||||||
><P
|
|
||||||
><B
|
|
||||||
>Note: </B
|
|
||||||
>the
|
|
||||||
'<TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>user</I
|
|
||||||
></TT
|
|
||||||
>' in the <A
|
|
||||||
HREF="fcrontab.1.html#FCRONTAB.1.SYNOPSIS"
|
|
||||||
>synopsys</A
|
|
||||||
> is equivalent
|
|
||||||
to a '<CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>-u</CODE
|
|
||||||
>
|
|
||||||
<TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>user</I
|
|
||||||
></TT
|
|
||||||
>'.</P
|
|
||||||
></BLOCKQUOTE
|
|
||||||
></DIV
|
|
||||||
></P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>-l</CODE
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>List user's current <SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
> to standard
|
|
||||||
output.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>-e</CODE
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Edit user's current <SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
> using either the editor
|
|
||||||
specified by the environment variable
|
|
||||||
<CODE
|
|
||||||
CLASS="ENVAR"
|
|
||||||
>VISUAL</CODE
|
|
||||||
>, or <CODE
|
|
||||||
CLASS="ENVAR"
|
|
||||||
>EDITOR</CODE
|
|
||||||
> if
|
|
||||||
<CODE
|
|
||||||
CLASS="ENVAR"
|
|
||||||
>VISUAL</CODE
|
|
||||||
> is not set. If none or them are set,
|
|
||||||
<B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>/usr/bin/vi</B
|
|
||||||
> will be used.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>-r</CODE
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Remove user's <SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
>.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>-z</CODE
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Reinstall user's <SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
> from its source code. All
|
|
||||||
informations <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> may have kept in the binary
|
|
||||||
<SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
> (such as the last execution time and date) will
|
|
||||||
be forgotten (ie. lost).</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>-n</CODE
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Ignore previous version. If this option is not given,
|
|
||||||
<SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> will try to keep as much information as possible
|
|
||||||
between old and new version of the <SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
> (time and
|
|
||||||
date of next execution, if job is in serial queue, etc) if
|
|
||||||
the line hasn't been modified (same fields, same shell
|
|
||||||
command).</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>-c</CODE
|
|
||||||
> <TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>file</I
|
|
||||||
></TT
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Make <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
> use config file
|
|
||||||
<TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>file</I
|
|
||||||
></TT
|
|
||||||
> instead of default config
|
|
||||||
file <TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/etc/fcron.conf</TT
|
|
||||||
>. To
|
|
||||||
interact with a running <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> process, <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
> must
|
|
||||||
use the same config file as the process. That way, several
|
|
||||||
<SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> processes can run simultaneously on an only
|
|
||||||
system.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>-d</CODE
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Run in debug mode. In this mode, many informational
|
|
||||||
messages will be output in order to check if anything went
|
|
||||||
wrong.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>-h</CODE
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Display a brief description of the options.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>-V</CODE
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Display an informational message about <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
>,
|
|
||||||
including its version and the license under which it is
|
|
||||||
distributed.</P
|
|
||||||
></DD
|
|
||||||
></DL
|
|
||||||
></DIV
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="REFSECT1"
|
|
||||||
><A
|
|
||||||
NAME="AEN1736"
|
|
||||||
></A
|
|
||||||
><H2
|
|
||||||
>Return values</H2
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>Fcrontab</SPAN
|
|
||||||
> returns 0 on
|
|
||||||
normal exit and 1 on error.</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="REFSECT1"
|
|
||||||
><A
|
|
||||||
NAME="AEN1740"
|
|
||||||
></A
|
|
||||||
><H2
|
|
||||||
>Conforming to</H2
|
|
||||||
><P
|
|
||||||
>Should be POSIX compliant.</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="REFSECT1"
|
|
||||||
><A
|
|
||||||
NAME="FCRONTAB.1.FILES"
|
|
||||||
></A
|
|
||||||
><H2
|
|
||||||
>Files</H2
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><DIV
|
|
||||||
CLASS="VARIABLELIST"
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/etc/fcron.conf</TT
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Configuration file for <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
>, <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
> and
|
|
||||||
<SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrondyn</SPAN
|
|
||||||
>: contains paths (spool dir, pid file) and
|
|
||||||
default programs to use (editor, shell, etc). See <A
|
|
||||||
HREF="fcron.conf.5.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcron.conf</SPAN
|
|
||||||
>(5)</A
|
|
||||||
> for more
|
|
||||||
details.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/etc/fcron.allow</TT
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Users allowed to use <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
> and <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrondyn</SPAN
|
|
||||||
> (one name
|
|
||||||
per line, special name "all" acts for everyone)</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/etc/fcron.deny</TT
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Users who are not allowed to use <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
> and
|
|
||||||
<SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrondyn</SPAN
|
|
||||||
> (same format as allow file)</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
><TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/etc/pam.d/fcron</TT
|
|
||||||
> (or
|
|
||||||
<TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/etc/pam.conf</TT
|
|
||||||
>)</B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>PAM</SPAN
|
|
||||||
> configuration file for
|
|
||||||
<SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
>. Take a look at pam(8) for more details.</P
|
|
||||||
></DD
|
|
||||||
></DL
|
|
||||||
></DIV
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="REFSECT1"
|
|
||||||
><A
|
|
||||||
NAME="AEN1778"
|
|
||||||
></A
|
|
||||||
><H2
|
|
||||||
>See also</H2
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><TABLE
|
|
||||||
BORDER="0"
|
|
||||||
><TBODY
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
><A
|
|
||||||
HREF="fcrontab.1.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
>(1),</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
><A
|
|
||||||
HREF="fcrondyn.1.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrondyn</SPAN
|
|
||||||
>(1),</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
><A
|
|
||||||
HREF="fcrontab.5.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
>(5),</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
><A
|
|
||||||
HREF="fcron.conf.5.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="SYSTEMITEM"
|
|
||||||
>fcron.conf</SPAN
|
|
||||||
>(5),</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
><A
|
|
||||||
HREF="fcron.8.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
>(8).</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
>If you're learning how to use fcron from scratch, I suggest
|
|
||||||
that you read the HTML version of the documentation (if your are not reading it
|
|
||||||
right now! :) ): the content is the same, but it is easier to navigate thanks
|
|
||||||
to the hyperlinks.</TD
|
|
||||||
></TR
|
|
||||||
></TBODY
|
|
||||||
></TABLE
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="REFSECT1"
|
|
||||||
><A
|
|
||||||
NAME="AEN1797"
|
|
||||||
></A
|
|
||||||
><H2
|
|
||||||
>Author</H2
|
|
||||||
><P
|
|
||||||
>Thibault Godouet <CODE
|
|
||||||
CLASS="EMAIL"
|
|
||||||
><<A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>fcron@free.fr</A
|
|
||||||
>></CODE
|
|
||||||
></P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVFOOTER"
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Footer navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="fcron.conf.5.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="index.html"
|
|
||||||
ACCESSKEY="H"
|
|
||||||
>Home</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="fcrontab.5.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
>fcron.conf</TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="manpages.html"
|
|
||||||
ACCESSKEY="U"
|
|
||||||
>Up</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>fcrontab</TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></DIV
|
|
||||||
></BODY
|
|
||||||
></HTML
|
|
||||||
>
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,709 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<HTML
|
|
||||||
><HEAD
|
|
||||||
><TITLE
|
|
||||||
>GNU Free Documentation License</TITLE
|
|
||||||
><META
|
|
||||||
NAME="GENERATOR"
|
|
||||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
|
||||||
REL="HOME"
|
|
||||||
TITLE="Fcron documentation"
|
|
||||||
HREF="index.html"><LINK
|
|
||||||
REL="PREVIOUS"
|
|
||||||
TITLE="GNU GENERAL PUBLIC LICENSE"
|
|
||||||
HREF="gpl.html"></HEAD
|
|
||||||
><BODY
|
|
||||||
CLASS="APPENDIX"
|
|
||||||
BGCOLOR="#FFFFFF"
|
|
||||||
TEXT="#000000"
|
|
||||||
LINK="#0000FF"
|
|
||||||
VLINK="#840084"
|
|
||||||
ALINK="#0000FF"
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVHEADER"
|
|
||||||
><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="LEGALNOTICE.html"
|
|
||||||
>Copyright</A
|
|
||||||
> © 2000-2014 <A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>Thibault Godouet</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="20%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
>Fcron 3.2.0 </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>Web page : <A
|
|
||||||
HREF="http://fcron.free.fr"
|
|
||||||
>http://fcron.free.fr</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TH
|
|
||||||
COLSPAN="3"
|
|
||||||
ALIGN="center"
|
|
||||||
>Fcron documentation</TH
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="gpl.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="80%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="bottom"
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="bottom"
|
|
||||||
> </TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="APPENDIX"
|
|
||||||
><H1
|
|
||||||
><A
|
|
||||||
NAME="FDL"
|
|
||||||
></A
|
|
||||||
>Appendix B. GNU Free Documentation License</H1
|
|
||||||
><DIV
|
|
||||||
CLASS="TOC"
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
>Table of Contents</B
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>0. <A
|
|
||||||
HREF="fdl.html#FDL-PREAMBLE"
|
|
||||||
>PREAMBLE</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1. <A
|
|
||||||
HREF="fdl.html#FDL-APPLICABILITY"
|
|
||||||
>APPLICABILITY AND DEFINITIONS</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>2. <A
|
|
||||||
HREF="fdl.html#FDL-VERBATIM"
|
|
||||||
>VERBATIM COPYING</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>3. <A
|
|
||||||
HREF="fdl.html#FDL-COPYING"
|
|
||||||
>COPYING IN QUANTITY</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>4. <A
|
|
||||||
HREF="fdl.html#FDL-MODIFICATIONS"
|
|
||||||
>MODIFICATIONS</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>5. <A
|
|
||||||
HREF="fdl.html#FDL-COMBINING"
|
|
||||||
>COMBINING DOCUMENTS</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>6. <A
|
|
||||||
HREF="fdl.html#FDL-COLLECTIONS"
|
|
||||||
>COLLECTIONS OF DOCUMENTS</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>7. <A
|
|
||||||
HREF="fdl.html#FDL-AGGREGATION"
|
|
||||||
>AGGREGATION WITH INDEPENDENT WORKS</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>8. <A
|
|
||||||
HREF="fdl.html#FDL-TRANSLATION"
|
|
||||||
>TRANSLATION</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>9. <A
|
|
||||||
HREF="fdl.html#FDL-TERMINATION"
|
|
||||||
>TERMINATION</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>10. <A
|
|
||||||
HREF="fdl.html#FDL-FUTURE"
|
|
||||||
>FUTURE REVISIONS OF THIS LICENSE</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
><A
|
|
||||||
HREF="fdl.html#FDL-HOWTO"
|
|
||||||
>How to use this License for your documents</A
|
|
||||||
></DT
|
|
||||||
></DL
|
|
||||||
></DIV
|
|
||||||
><P
|
|
||||||
>Version 1.1, March 2000</P
|
|
||||||
><A
|
|
||||||
NAME="AEN3413"
|
|
||||||
></A
|
|
||||||
><BLOCKQUOTE
|
|
||||||
CLASS="BLOCKQUOTE"
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></BLOCKQUOTE
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="FDL-PREAMBLE"
|
|
||||||
>0. PREAMBLE</A
|
|
||||||
></H1
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="FDL-APPLICABILITY"
|
|
||||||
>1. APPLICABILITY AND DEFINITIONS</A
|
|
||||||
></H1
|
|
||||||
><P
|
|
||||||
>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".</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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".</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="FDL-VERBATIM"
|
|
||||||
>2. VERBATIM COPYING</A
|
|
||||||
></H1
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>You may also lend copies, under the same conditions stated
|
|
||||||
above, and you may publicly display copies.</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="FDL-COPYING"
|
|
||||||
>3. COPYING IN QUANTITY</A
|
|
||||||
></H1
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="FDL-MODIFICATIONS"
|
|
||||||
>4. MODIFICATIONS</A
|
|
||||||
></H1
|
|
||||||
><P
|
|
||||||
>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:</P
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><OL
|
|
||||||
TYPE="A"
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>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).</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>State on the Title page the name of the
|
|
||||||
publisher of the Modified Version, as the publisher.</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>Preserve all the copyright notices of the
|
|
||||||
Document.</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>Add an appropriate copyright notice for your
|
|
||||||
modifications adjacent to the other copyright notices.</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>Preserve in that license notice the full lists
|
|
||||||
of Invariant Sections and required Cover Texts given in the Document's license
|
|
||||||
notice.</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>Include an unaltered copy of this
|
|
||||||
License.</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>Delete any section entitled "Endorsements".
|
|
||||||
Such a section may not be included in the Modified Version.</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>Do not retitle any existing section as
|
|
||||||
"Endorsements" or to conflict in title with any Invariant Section.</P
|
|
||||||
></LI
|
|
||||||
></OL
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="FDL-COMBINING"
|
|
||||||
>5. COMBINING DOCUMENTS</A
|
|
||||||
></H1
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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."</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="FDL-COLLECTIONS"
|
|
||||||
>6. COLLECTIONS OF DOCUMENTS</A
|
|
||||||
></H1
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="FDL-AGGREGATION"
|
|
||||||
>7. AGGREGATION WITH INDEPENDENT WORKS</A
|
|
||||||
></H1
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="FDL-TRANSLATION"
|
|
||||||
>8. TRANSLATION</A
|
|
||||||
></H1
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="FDL-TERMINATION"
|
|
||||||
>9. TERMINATION</A
|
|
||||||
></H1
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="FDL-FUTURE"
|
|
||||||
>10. FUTURE REVISIONS OF THIS LICENSE</A
|
|
||||||
></H1
|
|
||||||
><P
|
|
||||||
>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 <A
|
|
||||||
HREF="http://www.gnu.org/copyleft/"
|
|
||||||
TARGET="_top"
|
|
||||||
>http://www.gnu.org/copyleft/</A
|
|
||||||
>.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="FDL-HOWTO"
|
|
||||||
>How to use this License for your documents</A
|
|
||||||
></H1
|
|
||||||
><P
|
|
||||||
>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:</P
|
|
||||||
><A
|
|
||||||
NAME="AEN3503"
|
|
||||||
></A
|
|
||||||
><BLOCKQUOTE
|
|
||||||
CLASS="BLOCKQUOTE"
|
|
||||||
><P
|
|
||||||
> 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".</P
|
|
||||||
></BLOCKQUOTE
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></DIV
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVFOOTER"
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Footer navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="gpl.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="index.html"
|
|
||||||
ACCESSKEY="H"
|
|
||||||
>Home</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
> </TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
>GNU GENERAL PUBLIC LICENSE</TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
> </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
> </TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></DIV
|
|
||||||
></BODY
|
|
||||||
></HTML
|
|
||||||
>
|
|
||||||
|
|
@ -1,592 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<HTML
|
|
||||||
><HEAD
|
|
||||||
><TITLE
|
|
||||||
>GNU GENERAL PUBLIC LICENSE</TITLE
|
|
||||||
><META
|
|
||||||
NAME="GENERATOR"
|
|
||||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
|
||||||
REL="HOME"
|
|
||||||
TITLE="Fcron documentation"
|
|
||||||
HREF="index.html"><LINK
|
|
||||||
REL="PREVIOUS"
|
|
||||||
TITLE="Frequently Asked Questions"
|
|
||||||
HREF="faq.html"><LINK
|
|
||||||
REL="NEXT"
|
|
||||||
TITLE="GNU Free Documentation License"
|
|
||||||
HREF="fdl.html"></HEAD
|
|
||||||
><BODY
|
|
||||||
CLASS="APPENDIX"
|
|
||||||
BGCOLOR="#FFFFFF"
|
|
||||||
TEXT="#000000"
|
|
||||||
LINK="#0000FF"
|
|
||||||
VLINK="#840084"
|
|
||||||
ALINK="#0000FF"
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVHEADER"
|
|
||||||
><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="LEGALNOTICE.html"
|
|
||||||
>Copyright</A
|
|
||||||
> © 2000-2014 <A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>Thibault Godouet</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="20%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
>Fcron 3.2.0 </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>Web page : <A
|
|
||||||
HREF="http://fcron.free.fr"
|
|
||||||
>http://fcron.free.fr</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TH
|
|
||||||
COLSPAN="3"
|
|
||||||
ALIGN="center"
|
|
||||||
>Fcron documentation</TH
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="faq.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="80%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="bottom"
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="fdl.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="APPENDIX"
|
|
||||||
><H1
|
|
||||||
><A
|
|
||||||
NAME="GPL"
|
|
||||||
></A
|
|
||||||
>Appendix A. GNU GENERAL PUBLIC LICENSE</H1
|
|
||||||
><DIV
|
|
||||||
CLASS="TOC"
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
>Table of Contents</B
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>0. <A
|
|
||||||
HREF="gpl.html#GPL-PREAMBLE"
|
|
||||||
>PREAMBLE</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1. <A
|
|
||||||
HREF="gpl.html#GPL-TERMS"
|
|
||||||
>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
|
|
||||||
MODIFICATION</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
><A
|
|
||||||
HREF="gpl.html#GPL-HOWTO"
|
|
||||||
>How to use this License for your documents</A
|
|
||||||
></DT
|
|
||||||
></DL
|
|
||||||
></DIV
|
|
||||||
><P
|
|
||||||
>Version 2, June 1991</P
|
|
||||||
><A
|
|
||||||
NAME="AEN3342"
|
|
||||||
></A
|
|
||||||
><BLOCKQUOTE
|
|
||||||
CLASS="BLOCKQUOTE"
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></BLOCKQUOTE
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="GPL-PREAMBLE"
|
|
||||||
>0. PREAMBLE</A
|
|
||||||
></H1
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>The precise terms and conditions for copying, distribution and modification
|
|
||||||
follow.</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="GPL-TERMS"
|
|
||||||
>1. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
|
|
||||||
MODIFICATION</A
|
|
||||||
></H1
|
|
||||||
><P
|
|
||||||
>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".</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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:</P
|
|
||||||
><P
|
|
||||||
> * a) You must cause the modified files to carry prominent notices stating
|
|
||||||
that you changed the files and the date of any change.</P
|
|
||||||
><P
|
|
||||||
> * 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.</P
|
|
||||||
><P
|
|
||||||
> * 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.)</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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:</P
|
|
||||||
><P
|
|
||||||
> * 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,</P
|
|
||||||
><P
|
|
||||||
> * 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,</P
|
|
||||||
><P
|
|
||||||
> * 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.)</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>This section is intended to make thoroughly clear what is believed to be a
|
|
||||||
consequence of the rest of this License.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>NO WARRANTY</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><P
|
|
||||||
>END OF TERMS AND CONDITIONS</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="GPL-HOWTO"
|
|
||||||
>How to use this License for your documents</A
|
|
||||||
></H1
|
|
||||||
><P
|
|
||||||
> 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.</P
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
><A
|
|
||||||
NAME="AEN3392"
|
|
||||||
></A
|
|
||||||
><BLOCKQUOTE
|
|
||||||
CLASS="BLOCKQUOTE"
|
|
||||||
><P
|
|
||||||
><TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>one line to give the program's name and an idea of what it
|
|
||||||
does.</I
|
|
||||||
></TT
|
|
||||||
> Copyright (C) <TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>yyyy</I
|
|
||||||
></TT
|
|
||||||
> 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.</P
|
|
||||||
></BLOCKQUOTE
|
|
||||||
><P
|
|
||||||
>Also add information on how to contact you by electronic and
|
|
||||||
paper mail.</P
|
|
||||||
><P
|
|
||||||
>If the program is interactive, make it output a short notice
|
|
||||||
like this when it starts in an interactive mode:</P
|
|
||||||
><TABLE
|
|
||||||
BORDER="0"
|
|
||||||
BGCOLOR="#E0E0E0"
|
|
||||||
WIDTH="100%"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
><PRE
|
|
||||||
CLASS="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.</PRE
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><P
|
|
||||||
>The hypothetical commands `<B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>show w</B
|
|
||||||
>' and
|
|
||||||
`<B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>show c</B
|
|
||||||
>' should show the appropriate parts of the General
|
|
||||||
Public License. Of course, the commands you use may be called something other
|
|
||||||
than `<B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>show w</B
|
|
||||||
>' and `<B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>show c</B
|
|
||||||
>'; they could
|
|
||||||
even be mouse-clicks or menu items--whatever suits your program.</P
|
|
||||||
><P
|
|
||||||
>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:</P
|
|
||||||
><A
|
|
||||||
NAME="AEN3405"
|
|
||||||
></A
|
|
||||||
><BLOCKQUOTE
|
|
||||||
CLASS="BLOCKQUOTE"
|
|
||||||
><P
|
|
||||||
>Yoyodyne, Inc., hereby disclaims all copyright interest in
|
|
||||||
the program `Gnomovision' (which makes passes at compilers) written by James
|
|
||||||
Hacker.</P
|
|
||||||
><P
|
|
||||||
><TT
|
|
||||||
CLASS="REPLACEABLE"
|
|
||||||
><I
|
|
||||||
>signature of Ty Coon</I
|
|
||||||
></TT
|
|
||||||
>, 1 April
|
|
||||||
1989 Ty Coon, President of Vice</P
|
|
||||||
></BLOCKQUOTE
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></DIV
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVFOOTER"
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Footer navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="faq.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="index.html"
|
|
||||||
ACCESSKEY="H"
|
|
||||||
>Home</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="fdl.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
>Frequently Asked Questions</TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
> </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>GNU Free Documentation License</TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></DIV
|
|
||||||
></BODY
|
|
||||||
></HTML
|
|
||||||
>
|
|
||||||
|
|
@ -1,286 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<HTML
|
|
||||||
><HEAD
|
|
||||||
><TITLE
|
|
||||||
>Fcron: how and why?</TITLE
|
|
||||||
><META
|
|
||||||
NAME="GENERATOR"
|
|
||||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
|
||||||
REL="HOME"
|
|
||||||
TITLE="Fcron documentation"
|
|
||||||
HREF="index.html"><LINK
|
|
||||||
REL="PREVIOUS"
|
|
||||||
TITLE="Fcron documentation"
|
|
||||||
HREF="index.html"><LINK
|
|
||||||
REL="NEXT"
|
|
||||||
TITLE="About fcron"
|
|
||||||
HREF="readme.html"></HEAD
|
|
||||||
><BODY
|
|
||||||
CLASS="CHAPTER"
|
|
||||||
BGCOLOR="#FFFFFF"
|
|
||||||
TEXT="#000000"
|
|
||||||
LINK="#0000FF"
|
|
||||||
VLINK="#840084"
|
|
||||||
ALINK="#0000FF"
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVHEADER"
|
|
||||||
><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="LEGALNOTICE.html"
|
|
||||||
>Copyright</A
|
|
||||||
> © 2000-2014 <A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>Thibault Godouet</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="20%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
>Fcron 3.2.0 </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>Web page : <A
|
|
||||||
HREF="http://fcron.free.fr"
|
|
||||||
>http://fcron.free.fr</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TH
|
|
||||||
COLSPAN="3"
|
|
||||||
ALIGN="center"
|
|
||||||
>Fcron documentation</TH
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="index.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="80%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="bottom"
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="readme.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="CHAPTER"
|
|
||||||
><H1
|
|
||||||
><A
|
|
||||||
NAME="HOW-AND-WHY"
|
|
||||||
></A
|
|
||||||
>Chapter 1. Fcron: how and why?</H1
|
|
||||||
><DIV
|
|
||||||
CLASS="TOC"
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
>Table of Contents</B
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.1. <A
|
|
||||||
HREF="readme.html"
|
|
||||||
>About fcron</A
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
>1.1.1. <A
|
|
||||||
HREF="readme.html#AEN37"
|
|
||||||
>What is fcron?</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.1.2. <A
|
|
||||||
HREF="readme.html#AEN82"
|
|
||||||
>License</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.1.3. <A
|
|
||||||
HREF="readme.html#AEN87"
|
|
||||||
>Requirements</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.1.4. <A
|
|
||||||
HREF="readme.html#AEN148"
|
|
||||||
>Compilation and installation</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.1.5. <A
|
|
||||||
HREF="readme.html#AEN152"
|
|
||||||
>Configuration</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.1.6. <A
|
|
||||||
HREF="readme.html#AEN161"
|
|
||||||
>Bug reports, corrections, propositions...</A
|
|
||||||
></DT
|
|
||||||
></DL
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
>1.2. <A
|
|
||||||
HREF="install.html"
|
|
||||||
>How to install fcron</A
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
>1.2.1. <A
|
|
||||||
HREF="install.html#AEN169"
|
|
||||||
>Compilation requirements</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.2.2. <A
|
|
||||||
HREF="install.html#AEN203"
|
|
||||||
>Compilation and installation instructions</A
|
|
||||||
></DT
|
|
||||||
></DL
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
>1.3. <A
|
|
||||||
HREF="changes.html"
|
|
||||||
>Changes</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.4. <A
|
|
||||||
HREF="relnotes.html"
|
|
||||||
>Release notes: <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> 3.2.0</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.5. <A
|
|
||||||
HREF="todo.html"
|
|
||||||
>Todo</A
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
>1.5.1. <A
|
|
||||||
HREF="todo.html#AEN988"
|
|
||||||
>High priority</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.5.2. <A
|
|
||||||
HREF="todo.html#AEN997"
|
|
||||||
>Low priority</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.5.3. <A
|
|
||||||
HREF="todo.html#AEN1024"
|
|
||||||
>Ideas</A
|
|
||||||
></DT
|
|
||||||
></DL
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
>1.6. <A
|
|
||||||
HREF="thanks.html"
|
|
||||||
>Thanks</A
|
|
||||||
></DT
|
|
||||||
></DL
|
|
||||||
></DIV
|
|
||||||
><P
|
|
||||||
>This chapter will explain you what is <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
>, why you should need
|
|
||||||
it, and how to install it.</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVFOOTER"
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Footer navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="index.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="index.html"
|
|
||||||
ACCESSKEY="H"
|
|
||||||
>Home</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="readme.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
>Fcron documentation</TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
> </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>About fcron</TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></DIV
|
|
||||||
></BODY
|
|
||||||
></HTML
|
|
||||||
>
|
|
||||||
|
|
@ -1,489 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<HTML
|
|
||||||
><HEAD
|
|
||||||
><TITLE
|
|
||||||
>Fcron documentation</TITLE
|
|
||||||
><META
|
|
||||||
NAME="GENERATOR"
|
|
||||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
|
||||||
REL="NEXT"
|
|
||||||
TITLE="Fcron: how and why?"
|
|
||||||
HREF="how-and-why.html"></HEAD
|
|
||||||
><BODY
|
|
||||||
CLASS="BOOK"
|
|
||||||
BGCOLOR="#FFFFFF"
|
|
||||||
TEXT="#000000"
|
|
||||||
LINK="#0000FF"
|
|
||||||
VLINK="#840084"
|
|
||||||
ALINK="#0000FF"
|
|
||||||
><DIV
|
|
||||||
CLASS="BOOK"
|
|
||||||
><A
|
|
||||||
NAME="FCRON-DOC"
|
|
||||||
></A
|
|
||||||
><DIV
|
|
||||||
CLASS="TITLEPAGE"
|
|
||||||
><H1
|
|
||||||
CLASS="TITLE"
|
|
||||||
><A
|
|
||||||
NAME="BOOKINFO"
|
|
||||||
>Fcron documentation</A
|
|
||||||
></H1
|
|
||||||
><H3
|
|
||||||
CLASS="AUTHOR"
|
|
||||||
><A
|
|
||||||
NAME="AEN7"
|
|
||||||
></A
|
|
||||||
>Thibault Godouet</H3
|
|
||||||
><P
|
|
||||||
CLASS="COPYRIGHT"
|
|
||||||
><A
|
|
||||||
HREF="LEGALNOTICE.html"
|
|
||||||
>Copyright</A
|
|
||||||
> © 2000-2014 Thibault Godouet</P
|
|
||||||
><DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="ABSTRACT"
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><A
|
|
||||||
NAME="AEN20"
|
|
||||||
></A
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>Fcron</SPAN
|
|
||||||
> is distributed under GPL license (please read the
|
|
||||||
license in <A
|
|
||||||
HREF="gpl.html"
|
|
||||||
>Appendix A</A
|
|
||||||
>).</P
|
|
||||||
><P
|
|
||||||
>Project home page: <A
|
|
||||||
HREF="http://fcron.free.fr"
|
|
||||||
TARGET="_top"
|
|
||||||
>http://fcron.free.fr</A
|
|
||||||
></P
|
|
||||||
><P
|
|
||||||
>Author: Thibault GODOUET <CODE
|
|
||||||
CLASS="EMAIL"
|
|
||||||
><<A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>fcron@free.fr</A
|
|
||||||
>></CODE
|
|
||||||
></P
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
></DIV
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="ABSTRACT"
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><A
|
|
||||||
NAME="AEN28"
|
|
||||||
></A
|
|
||||||
><P
|
|
||||||
>You can get the latest HTML version of this document at:
|
|
||||||
<A
|
|
||||||
HREF="http://fcron.free.fr/files/fcron-doc-en-html.tar.gz"
|
|
||||||
TARGET="_top"
|
|
||||||
>http://fcron.free.fr/files/fcron-doc-html.tar.gz</A
|
|
||||||
> . The SGML DocBook sources are included with fcron packages.</P
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
></DIV
|
|
||||||
></DIV
|
|
||||||
><SPAN
|
|
||||||
CLASS="RELEASEINFO"
|
|
||||||
>Fcron 3.2.0 <BR></SPAN
|
|
||||||
><HR></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="TOC"
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
>Table of Contents</B
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1. <A
|
|
||||||
HREF="how-and-why.html"
|
|
||||||
>Fcron: how and why?</A
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
>1.1. <A
|
|
||||||
HREF="readme.html"
|
|
||||||
>About fcron</A
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
>1.1.1. <A
|
|
||||||
HREF="readme.html#AEN37"
|
|
||||||
>What is fcron?</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.1.2. <A
|
|
||||||
HREF="readme.html#AEN82"
|
|
||||||
>License</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.1.3. <A
|
|
||||||
HREF="readme.html#AEN87"
|
|
||||||
>Requirements</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.1.4. <A
|
|
||||||
HREF="readme.html#AEN148"
|
|
||||||
>Compilation and installation</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.1.5. <A
|
|
||||||
HREF="readme.html#AEN152"
|
|
||||||
>Configuration</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.1.6. <A
|
|
||||||
HREF="readme.html#AEN161"
|
|
||||||
>Bug reports, corrections, propositions...</A
|
|
||||||
></DT
|
|
||||||
></DL
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
>1.2. <A
|
|
||||||
HREF="install.html"
|
|
||||||
>How to install fcron</A
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
>1.2.1. <A
|
|
||||||
HREF="install.html#AEN169"
|
|
||||||
>Compilation requirements</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.2.2. <A
|
|
||||||
HREF="install.html#AEN203"
|
|
||||||
>Compilation and installation instructions</A
|
|
||||||
></DT
|
|
||||||
></DL
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
>1.3. <A
|
|
||||||
HREF="changes.html"
|
|
||||||
>Changes</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.4. <A
|
|
||||||
HREF="relnotes.html"
|
|
||||||
>Release notes: <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> 3.2.0</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.5. <A
|
|
||||||
HREF="todo.html"
|
|
||||||
>Todo</A
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
>1.5.1. <A
|
|
||||||
HREF="todo.html#AEN988"
|
|
||||||
>High priority</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.5.2. <A
|
|
||||||
HREF="todo.html#AEN997"
|
|
||||||
>Low priority</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1.5.3. <A
|
|
||||||
HREF="todo.html#AEN1024"
|
|
||||||
>Ideas</A
|
|
||||||
></DT
|
|
||||||
></DL
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
>1.6. <A
|
|
||||||
HREF="thanks.html"
|
|
||||||
>Thanks</A
|
|
||||||
></DT
|
|
||||||
></DL
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
>2. <A
|
|
||||||
HREF="using-fcron.html"
|
|
||||||
>Using fcron ...</A
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
>2.1. <A
|
|
||||||
HREF="manpages.html"
|
|
||||||
>Manual pages of fcron</A
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
><A
|
|
||||||
HREF="fcron.8.html"
|
|
||||||
>fcron</A
|
|
||||||
> -- daemon to execute scheduled tasks</DT
|
|
||||||
><DT
|
|
||||||
><A
|
|
||||||
HREF="fcron.conf.5.html"
|
|
||||||
>fcron.conf</A
|
|
||||||
> -- configuration file for fcron and fcrontab</DT
|
|
||||||
><DT
|
|
||||||
><A
|
|
||||||
HREF="fcrontab.1.html"
|
|
||||||
>fcrontab</A
|
|
||||||
> -- manipulate per-user fcrontab
|
|
||||||
files</DT
|
|
||||||
><DT
|
|
||||||
><A
|
|
||||||
HREF="fcrontab.5.html"
|
|
||||||
>fcrontab</A
|
|
||||||
> -- tables for driving fcron</DT
|
|
||||||
><DT
|
|
||||||
><A
|
|
||||||
HREF="fcrondyn.1.html"
|
|
||||||
>fcrondyn</A
|
|
||||||
> -- dialog dyn-amically with a running fcron daemon</DT
|
|
||||||
></DL
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
>2.2. <A
|
|
||||||
HREF="faq.html"
|
|
||||||
>Frequently Asked Questions</A
|
|
||||||
></DT
|
|
||||||
></DL
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
>A. <A
|
|
||||||
HREF="gpl.html"
|
|
||||||
>GNU GENERAL PUBLIC LICENSE</A
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
>0. <A
|
|
||||||
HREF="gpl.html#GPL-PREAMBLE"
|
|
||||||
>PREAMBLE</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1. <A
|
|
||||||
HREF="gpl.html#GPL-TERMS"
|
|
||||||
>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
|
|
||||||
MODIFICATION</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
><A
|
|
||||||
HREF="gpl.html#GPL-HOWTO"
|
|
||||||
>How to use this License for your documents</A
|
|
||||||
></DT
|
|
||||||
></DL
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
>B. <A
|
|
||||||
HREF="fdl.html"
|
|
||||||
>GNU Free Documentation License</A
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
>0. <A
|
|
||||||
HREF="fdl.html#FDL-PREAMBLE"
|
|
||||||
>PREAMBLE</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>1. <A
|
|
||||||
HREF="fdl.html#FDL-APPLICABILITY"
|
|
||||||
>APPLICABILITY AND DEFINITIONS</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>2. <A
|
|
||||||
HREF="fdl.html#FDL-VERBATIM"
|
|
||||||
>VERBATIM COPYING</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>3. <A
|
|
||||||
HREF="fdl.html#FDL-COPYING"
|
|
||||||
>COPYING IN QUANTITY</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>4. <A
|
|
||||||
HREF="fdl.html#FDL-MODIFICATIONS"
|
|
||||||
>MODIFICATIONS</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>5. <A
|
|
||||||
HREF="fdl.html#FDL-COMBINING"
|
|
||||||
>COMBINING DOCUMENTS</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>6. <A
|
|
||||||
HREF="fdl.html#FDL-COLLECTIONS"
|
|
||||||
>COLLECTIONS OF DOCUMENTS</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>7. <A
|
|
||||||
HREF="fdl.html#FDL-AGGREGATION"
|
|
||||||
>AGGREGATION WITH INDEPENDENT WORKS</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>8. <A
|
|
||||||
HREF="fdl.html#FDL-TRANSLATION"
|
|
||||||
>TRANSLATION</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>9. <A
|
|
||||||
HREF="fdl.html#FDL-TERMINATION"
|
|
||||||
>TERMINATION</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>10. <A
|
|
||||||
HREF="fdl.html#FDL-FUTURE"
|
|
||||||
>FUTURE REVISIONS OF THIS LICENSE</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
><A
|
|
||||||
HREF="fdl.html#FDL-HOWTO"
|
|
||||||
>How to use this License for your documents</A
|
|
||||||
></DT
|
|
||||||
></DL
|
|
||||||
></DD
|
|
||||||
></DL
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="LOT"
|
|
||||||
><DL
|
|
||||||
CLASS="LOT"
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
>List of Tables</B
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>2-1. <A
|
|
||||||
HREF="fcrontab.5.html#AEN1870"
|
|
||||||
>Valid time multipliers</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>2-2. <A
|
|
||||||
HREF="fcrontab.5.html#AEN1936"
|
|
||||||
>Time and date fields</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>2-3. <A
|
|
||||||
HREF="fcrontab.5.html#AEN2032"
|
|
||||||
>Needed time fields for each keyword</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>2-4. <A
|
|
||||||
HREF="fcrontab.5.html#AEN2144"
|
|
||||||
>Vixie cron shortcuts</A
|
|
||||||
></DT
|
|
||||||
></DL
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="LOT"
|
|
||||||
><DL
|
|
||||||
CLASS="LOT"
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
>List of Examples</B
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>2-1. <A
|
|
||||||
HREF="fcrontab.5.html#AEN1921"
|
|
||||||
>Some examples of lines based on elapsed system up
|
|
||||||
time</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>2-2. <A
|
|
||||||
HREF="fcrontab.5.html#AEN2005"
|
|
||||||
>Some examples of entries based on time and date</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>2-3. <A
|
|
||||||
HREF="fcrontab.5.html#AEN2755"
|
|
||||||
>An example of an option declaration:</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>2-4. <A
|
|
||||||
HREF="fcrontab.5.html#AEN2761"
|
|
||||||
>An example of a user fcrontab</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>2-5. <A
|
|
||||||
HREF="faq.html#AEN3236"
|
|
||||||
>Using fcron in a script: running a job once
|
|
||||||
every day, week, etc, at dialup connection</A
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>2-6. <A
|
|
||||||
HREF="faq.html#AEN3244"
|
|
||||||
>Using fcron in a script: running a job until the
|
|
||||||
end of the connection</A
|
|
||||||
></DT
|
|
||||||
></DL
|
|
||||||
></DIV
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVFOOTER"
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Footer navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
> </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
> </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="how-and-why.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
> </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
> </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>Fcron: how and why?</TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></DIV
|
|
||||||
></BODY
|
|
||||||
></HTML
|
|
||||||
>
|
|
||||||
|
|
@ -1,749 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<HTML
|
|
||||||
><HEAD
|
|
||||||
><TITLE
|
|
||||||
>How to install fcron</TITLE
|
|
||||||
><META
|
|
||||||
NAME="GENERATOR"
|
|
||||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
|
||||||
REL="HOME"
|
|
||||||
TITLE="Fcron documentation"
|
|
||||||
HREF="index.html"><LINK
|
|
||||||
REL="UP"
|
|
||||||
TITLE="Fcron: how and why?"
|
|
||||||
HREF="how-and-why.html"><LINK
|
|
||||||
REL="PREVIOUS"
|
|
||||||
TITLE="About fcron"
|
|
||||||
HREF="readme.html"><LINK
|
|
||||||
REL="NEXT"
|
|
||||||
TITLE="Changes"
|
|
||||||
HREF="changes.html"></HEAD
|
|
||||||
><BODY
|
|
||||||
CLASS="SECT1"
|
|
||||||
BGCOLOR="#FFFFFF"
|
|
||||||
TEXT="#000000"
|
|
||||||
LINK="#0000FF"
|
|
||||||
VLINK="#840084"
|
|
||||||
ALINK="#0000FF"
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVHEADER"
|
|
||||||
><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="LEGALNOTICE.html"
|
|
||||||
>Copyright</A
|
|
||||||
> © 2000-2014 <A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>Thibault Godouet</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="20%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
>Fcron 3.2.0 </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>Web page : <A
|
|
||||||
HREF="http://fcron.free.fr"
|
|
||||||
>http://fcron.free.fr</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TH
|
|
||||||
COLSPAN="3"
|
|
||||||
ALIGN="center"
|
|
||||||
>Fcron documentation</TH
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="readme.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="80%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="bottom"
|
|
||||||
>Chapter 1. Fcron: how and why?</TD
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="changes.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="INSTALL"
|
|
||||||
>1.2. How to install fcron</A
|
|
||||||
></H1
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT2"
|
|
||||||
><H2
|
|
||||||
CLASS="SECT2"
|
|
||||||
><A
|
|
||||||
NAME="AEN169"
|
|
||||||
>1.2.1. Compilation requirements</A
|
|
||||||
></H2
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><UL
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>A C compiler (e.g. gcc)</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>(optional) <SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>readline</SPAN
|
|
||||||
> development
|
|
||||||
library (e.g. libreadline-dev)</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>(optional) <SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>PAM</SPAN
|
|
||||||
> development
|
|
||||||
library (e.g. libpam0g-dev)</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>(optional) <SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>SE Linux</SPAN
|
|
||||||
> development library (e.g. libselinux1-dev)</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>(optional) <SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>Linux audit</SPAN
|
|
||||||
> development library (e.g. libaudit-dev)</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>If compiling from git checkout (rather than a tarball), then no generated file will be included out of the box, so you will need more tools to generate them. In particular the ./configure script and the documentation will be generated from the sources.</P
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><UL
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>git</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>autoconf</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>docbook</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>docbook-xsl</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>docbook-xml</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>docbook-util</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>manpages-dev</P
|
|
||||||
></LI
|
|
||||||
></UL
|
|
||||||
></LI
|
|
||||||
></UL
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT2"
|
|
||||||
><H2
|
|
||||||
CLASS="SECT2"
|
|
||||||
><A
|
|
||||||
NAME="AEN203"
|
|
||||||
>1.2.2. Compilation and installation instructions</A
|
|
||||||
></H2
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><UL
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>uncompress the archive:</P
|
|
||||||
><TABLE
|
|
||||||
BORDER="0"
|
|
||||||
BGCOLOR="#E0E0E0"
|
|
||||||
WIDTH="90%"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
><PRE
|
|
||||||
CLASS="SCREEN"
|
|
||||||
><SAMP
|
|
||||||
CLASS="PROMPT"
|
|
||||||
>bash$ </SAMP
|
|
||||||
><B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>tar -xzf fcron-X.Y.Z.src.tar.gz</B
|
|
||||||
></PRE
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>cd to the archive directory</P
|
|
||||||
><TABLE
|
|
||||||
BORDER="0"
|
|
||||||
BGCOLOR="#E0E0E0"
|
|
||||||
WIDTH="90%"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
><PRE
|
|
||||||
CLASS="SCREEN"
|
|
||||||
><SAMP
|
|
||||||
CLASS="PROMPT"
|
|
||||||
>bash$ </SAMP
|
|
||||||
><B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>cd fcron-X.Y.Z</B
|
|
||||||
></PRE
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>run the <B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>configure</B
|
|
||||||
> script:</P
|
|
||||||
><TABLE
|
|
||||||
BORDER="0"
|
|
||||||
BGCOLOR="#E0E0E0"
|
|
||||||
WIDTH="90%"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
><PRE
|
|
||||||
CLASS="SCREEN"
|
|
||||||
><SAMP
|
|
||||||
CLASS="PROMPT"
|
|
||||||
>bash$</SAMP
|
|
||||||
><B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>./configure</B
|
|
||||||
></PRE
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><P
|
|
||||||
> <DIV
|
|
||||||
CLASS="NOTE"
|
|
||||||
><BLOCKQUOTE
|
|
||||||
CLASS="NOTE"
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><UL
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
> If you can't see a <TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>./configure</TT
|
|
||||||
>, then you probably checked out the files from git, in which case you need to run <B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>autoconf</B
|
|
||||||
> to generate the <TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>configure</TT
|
|
||||||
> script.</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
> If using <SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>PAM</SPAN
|
|
||||||
>, beware that by default the <SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>PAM</SPAN
|
|
||||||
> configuration will be installed in <TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/usr/local/etc/</TT
|
|
||||||
>. That most likely mean that your system won't use this config, and may ask you to type your password everytime you start fcrontab or fcrondyn.</P
|
|
||||||
><P
|
|
||||||
>The simplest way to avoid this is to instruct configure to use <TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>/etc</TT
|
|
||||||
> instead with:</P
|
|
||||||
><TABLE
|
|
||||||
BORDER="0"
|
|
||||||
BGCOLOR="#E0E0E0"
|
|
||||||
WIDTH="90%"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
><PRE
|
|
||||||
CLASS="SCREEN"
|
|
||||||
><SAMP
|
|
||||||
CLASS="PROMPT"
|
|
||||||
>bash$ </SAMP
|
|
||||||
><B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>./configure --sysconfdir=/etc</B
|
|
||||||
></PRE
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
> You may also want to change the place where
|
|
||||||
<SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> will be installed: you can use the <B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>configure </B
|
|
||||||
>'s
|
|
||||||
option <CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>--prefix</CODE
|
|
||||||
> to do that. For instance:
|
|
||||||
</P
|
|
||||||
><TABLE
|
|
||||||
BORDER="0"
|
|
||||||
BGCOLOR="#E0E0E0"
|
|
||||||
WIDTH="90%"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
><PRE
|
|
||||||
CLASS="SCREEN"
|
|
||||||
><SAMP
|
|
||||||
CLASS="PROMPT"
|
|
||||||
>bash$ </SAMP
|
|
||||||
><B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>./configure --prefix=/usr--sysconfdir=/etc</B
|
|
||||||
></PRE
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><P
|
|
||||||
>(default is <CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>prefix=/usr/local</CODE
|
|
||||||
> and <CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>sysconfdir=${prefix}/etc</CODE
|
|
||||||
>).</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
> To disable the use of
|
|
||||||
<SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>PAM</SPAN
|
|
||||||
>, <SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>SE Linux</SPAN
|
|
||||||
> or <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrondyn</SPAN
|
|
||||||
>, use <B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>configure</B
|
|
||||||
>'s
|
|
||||||
option <CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>--with-pam=no</CODE
|
|
||||||
>, <CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>--with-selinux=no</CODE
|
|
||||||
>
|
|
||||||
and/or <CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>--with-fcrondyn=no</CODE
|
|
||||||
>.</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
> The command <B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>make install</B
|
|
||||||
> asks
|
|
||||||
you by default some questions you have to answer. To avoid that (which can be
|
|
||||||
useful for automatic installers), you can use the
|
|
||||||
<B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>./configure</B
|
|
||||||
>'s option <CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>--with-answer-all</CODE
|
|
||||||
>
|
|
||||||
and/or <CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>--with-boot-install</CODE
|
|
||||||
> (see "<B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>./configure
|
|
||||||
--help</B
|
|
||||||
>" for more details).
|
|
||||||
</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>To debug <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
>, you should use
|
|
||||||
<B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>configure </B
|
|
||||||
>'s option <CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>--with-debug</CODE
|
|
||||||
>.
|
|
||||||
</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
> You can get info on the others
|
|
||||||
<B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>configure </B
|
|
||||||
>'s options by running
|
|
||||||
"<B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>./configure --help</B
|
|
||||||
>".
|
|
||||||
</P
|
|
||||||
></LI
|
|
||||||
></UL
|
|
||||||
></BLOCKQUOTE
|
|
||||||
></DIV
|
|
||||||
>
|
|
||||||
<DIV
|
|
||||||
CLASS="WARNING"
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><TABLE
|
|
||||||
CLASS="WARNING"
|
|
||||||
BORDER="1"
|
|
||||||
WIDTH="90%"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
ALIGN="CENTER"
|
|
||||||
><B
|
|
||||||
>Warning</B
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
ALIGN="LEFT"
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><UL
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
> The <B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>configure</B
|
|
||||||
> script may not
|
|
||||||
define a correct directory for the man pages and the documentation on some
|
|
||||||
systems. You may check the values defined by <B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>configure</B
|
|
||||||
> and if
|
|
||||||
necessary force a value by the options <CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>--mandir</CODE
|
|
||||||
> and
|
|
||||||
<CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>-with-docdir </CODE
|
|
||||||
> (see the help by running
|
|
||||||
"<B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>./configure</B
|
|
||||||
> <CODE
|
|
||||||
CLASS="OPTION"
|
|
||||||
>--help</CODE
|
|
||||||
>").
|
|
||||||
</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
> If you get older <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
>'s man-pages with
|
|
||||||
<B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>man</B
|
|
||||||
> command after having upgraded, it's probably because
|
|
||||||
<SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> has changed its default man directory: you should remove manually the
|
|
||||||
outdated man-pages.
|
|
||||||
</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
> The <TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>Makefile</TT
|
|
||||||
> has been
|
|
||||||
designed for <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>GNU make</SPAN
|
|
||||||
>. Some other version of
|
|
||||||
<B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>make</B
|
|
||||||
> may fail to use it.
|
|
||||||
</P
|
|
||||||
></LI
|
|
||||||
></UL
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></DIV
|
|
||||||
>
|
|
||||||
</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
><EM
|
|
||||||
>(optional)</EM
|
|
||||||
> check the file
|
|
||||||
<TT
|
|
||||||
CLASS="FILENAME"
|
|
||||||
>config.h</TT
|
|
||||||
>, and change it if necessary (the configurable part
|
|
||||||
is on the top of the file and clearly delimited).</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>compile:</P
|
|
||||||
><TABLE
|
|
||||||
BORDER="0"
|
|
||||||
BGCOLOR="#E0E0E0"
|
|
||||||
WIDTH="90%"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
><PRE
|
|
||||||
CLASS="SCREEN"
|
|
||||||
><SAMP
|
|
||||||
CLASS="PROMPT"
|
|
||||||
>bash$ </SAMP
|
|
||||||
><B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>make</B
|
|
||||||
></PRE
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>then install binaries as root:</P
|
|
||||||
><TABLE
|
|
||||||
BORDER="0"
|
|
||||||
BGCOLOR="#E0E0E0"
|
|
||||||
WIDTH="90%"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
><PRE
|
|
||||||
CLASS="SCREEN"
|
|
||||||
><SAMP
|
|
||||||
CLASS="PROMPT"
|
|
||||||
>bash$ </SAMP
|
|
||||||
><B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>su root</B
|
|
||||||
></PRE
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><TABLE
|
|
||||||
BORDER="0"
|
|
||||||
BGCOLOR="#E0E0E0"
|
|
||||||
WIDTH="90%"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
><PRE
|
|
||||||
CLASS="SCREEN"
|
|
||||||
><SAMP
|
|
||||||
CLASS="PROMPT"
|
|
||||||
>bash# </SAMP
|
|
||||||
><B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>make install</B
|
|
||||||
></PRE
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></LI
|
|
||||||
></UL
|
|
||||||
><P
|
|
||||||
>You can now run <B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>fcron</B
|
|
||||||
> and
|
|
||||||
<B
|
|
||||||
CLASS="COMMAND"
|
|
||||||
>fcrontab</B
|
|
||||||
>.</P
|
|
||||||
><DIV
|
|
||||||
CLASS="NOTE"
|
|
||||||
><BLOCKQUOTE
|
|
||||||
CLASS="NOTE"
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><UL
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
> This is a <SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>POSIX</SPAN
|
|
||||||
> conforming
|
|
||||||
software. You must have a <SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>POSIX</SPAN
|
|
||||||
> compiler
|
|
||||||
(<SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>gcc</SPAN
|
|
||||||
> for example) in order to compile it.
|
|
||||||
</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
> This software has been written for
|
|
||||||
<SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>GNU/Linux</SPAN
|
|
||||||
> systems. If you want to port it on an other
|
|
||||||
<SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>Unix</SPAN
|
|
||||||
> platform (thank you if you do it), try to modify
|
|
||||||
- if possible - only the <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>configure</SPAN
|
|
||||||
> script. Please
|
|
||||||
send me any modifications at <CODE
|
|
||||||
CLASS="EMAIL"
|
|
||||||
><<A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>fcron@free.fr</A
|
|
||||||
>></CODE
|
|
||||||
> in order to include it in future releases.
|
|
||||||
</P
|
|
||||||
></LI
|
|
||||||
></UL
|
|
||||||
></BLOCKQUOTE
|
|
||||||
></DIV
|
|
||||||
></DIV
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVFOOTER"
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Footer navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="readme.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="index.html"
|
|
||||||
ACCESSKEY="H"
|
|
||||||
>Home</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="changes.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
>About fcron</TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="how-and-why.html"
|
|
||||||
ACCESSKEY="U"
|
|
||||||
>Up</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>Changes</TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></DIV
|
|
||||||
></BODY
|
|
||||||
></HTML
|
|
||||||
>
|
|
||||||
|
|
@ -1,219 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<HTML
|
|
||||||
><HEAD
|
|
||||||
><TITLE
|
|
||||||
>Manual pages of fcron</TITLE
|
|
||||||
><META
|
|
||||||
NAME="GENERATOR"
|
|
||||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
|
||||||
REL="HOME"
|
|
||||||
TITLE="Fcron documentation"
|
|
||||||
HREF="index.html"><LINK
|
|
||||||
REL="UP"
|
|
||||||
TITLE="Using fcron ..."
|
|
||||||
HREF="using-fcron.html"><LINK
|
|
||||||
REL="PREVIOUS"
|
|
||||||
TITLE="Using fcron ..."
|
|
||||||
HREF="using-fcron.html"><LINK
|
|
||||||
REL="NEXT"
|
|
||||||
TITLE="fcron"
|
|
||||||
HREF="fcron.8.html"></HEAD
|
|
||||||
><BODY
|
|
||||||
CLASS="SECT1"
|
|
||||||
BGCOLOR="#FFFFFF"
|
|
||||||
TEXT="#000000"
|
|
||||||
LINK="#0000FF"
|
|
||||||
VLINK="#840084"
|
|
||||||
ALINK="#0000FF"
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVHEADER"
|
|
||||||
><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="LEGALNOTICE.html"
|
|
||||||
>Copyright</A
|
|
||||||
> © 2000-2014 <A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>Thibault Godouet</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="20%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
>Fcron 3.2.0 </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>Web page : <A
|
|
||||||
HREF="http://fcron.free.fr"
|
|
||||||
>http://fcron.free.fr</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TH
|
|
||||||
COLSPAN="3"
|
|
||||||
ALIGN="center"
|
|
||||||
>Fcron documentation</TH
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="using-fcron.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="80%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="bottom"
|
|
||||||
>Chapter 2. Using fcron ...</TD
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="fcron.8.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="MANPAGES"
|
|
||||||
>2.1. Manual pages of fcron</A
|
|
||||||
></H1
|
|
||||||
><DIV
|
|
||||||
CLASS="TOC"
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
>Table of Contents</B
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
><A
|
|
||||||
HREF="fcron.8.html"
|
|
||||||
>fcron</A
|
|
||||||
> -- daemon to execute scheduled tasks</DT
|
|
||||||
><DT
|
|
||||||
><A
|
|
||||||
HREF="fcron.conf.5.html"
|
|
||||||
>fcron.conf</A
|
|
||||||
> -- configuration file for fcron and fcrontab</DT
|
|
||||||
><DT
|
|
||||||
><A
|
|
||||||
HREF="fcrontab.1.html"
|
|
||||||
>fcrontab</A
|
|
||||||
> -- manipulate per-user fcrontab
|
|
||||||
files</DT
|
|
||||||
><DT
|
|
||||||
><A
|
|
||||||
HREF="fcrontab.5.html"
|
|
||||||
>fcrontab</A
|
|
||||||
> -- tables for driving fcron</DT
|
|
||||||
><DT
|
|
||||||
><A
|
|
||||||
HREF="fcrondyn.1.html"
|
|
||||||
>fcrondyn</A
|
|
||||||
> -- dialog dyn-amically with a running fcron daemon</DT
|
|
||||||
></DL
|
|
||||||
></DIV
|
|
||||||
><P
|
|
||||||
>This section contains the manual pages, which tell you how to use <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
>.</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVFOOTER"
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Footer navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="using-fcron.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="index.html"
|
|
||||||
ACCESSKEY="H"
|
|
||||||
>Home</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="fcron.8.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
>Using fcron ...</TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="using-fcron.html"
|
|
||||||
ACCESSKEY="U"
|
|
||||||
>Up</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>fcron</TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></DIV
|
|
||||||
></BODY
|
|
||||||
></HTML
|
|
||||||
>
|
|
||||||
|
|
@ -1,602 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<HTML
|
|
||||||
><HEAD
|
|
||||||
><TITLE
|
|
||||||
>About fcron</TITLE
|
|
||||||
><META
|
|
||||||
NAME="GENERATOR"
|
|
||||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
|
||||||
REL="HOME"
|
|
||||||
TITLE="Fcron documentation"
|
|
||||||
HREF="index.html"><LINK
|
|
||||||
REL="UP"
|
|
||||||
TITLE="Fcron: how and why?"
|
|
||||||
HREF="how-and-why.html"><LINK
|
|
||||||
REL="PREVIOUS"
|
|
||||||
TITLE="Fcron: how and why?"
|
|
||||||
HREF="how-and-why.html"><LINK
|
|
||||||
REL="NEXT"
|
|
||||||
TITLE="How to install fcron"
|
|
||||||
HREF="install.html"></HEAD
|
|
||||||
><BODY
|
|
||||||
CLASS="SECT1"
|
|
||||||
BGCOLOR="#FFFFFF"
|
|
||||||
TEXT="#000000"
|
|
||||||
LINK="#0000FF"
|
|
||||||
VLINK="#840084"
|
|
||||||
ALINK="#0000FF"
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVHEADER"
|
|
||||||
><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="LEGALNOTICE.html"
|
|
||||||
>Copyright</A
|
|
||||||
> © 2000-2014 <A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>Thibault Godouet</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="20%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
>Fcron 3.2.0 </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>Web page : <A
|
|
||||||
HREF="http://fcron.free.fr"
|
|
||||||
>http://fcron.free.fr</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TH
|
|
||||||
COLSPAN="3"
|
|
||||||
ALIGN="center"
|
|
||||||
>Fcron documentation</TH
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="how-and-why.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="80%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="bottom"
|
|
||||||
>Chapter 1. Fcron: how and why?</TD
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="install.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="README"
|
|
||||||
>1.1. About fcron</A
|
|
||||||
></H1
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT2"
|
|
||||||
><H2
|
|
||||||
CLASS="SECT2"
|
|
||||||
><A
|
|
||||||
NAME="AEN37"
|
|
||||||
>1.1.1. What is fcron?</A
|
|
||||||
></H2
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>Fcron</SPAN
|
|
||||||
> is a scheduler. It aims at replacing <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>Vixie
|
|
||||||
Cron</SPAN
|
|
||||||
>, so it implements most of its functionalities.</P
|
|
||||||
><P
|
|
||||||
>But contrary to <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>Vixie Cron</SPAN
|
|
||||||
>, <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
>
|
|
||||||
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 <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>anacrontab</SPAN
|
|
||||||
>).</P
|
|
||||||
><P
|
|
||||||
>In other words, <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> does both the job of <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>Vixie
|
|
||||||
Cron</SPAN
|
|
||||||
> and <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>anacron</SPAN
|
|
||||||
>, but does even more
|
|
||||||
and better :)) ...</P
|
|
||||||
><P
|
|
||||||
>To do so, <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> 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:
|
|
||||||
|
|
||||||
<A
|
|
||||||
NAME="AEN52"
|
|
||||||
></A
|
|
||||||
><BLOCKQUOTE
|
|
||||||
CLASS="BLOCKQUOTE"
|
|
||||||
><P
|
|
||||||
>Run the task 'save /home/ directory' every 3h15 of system
|
|
||||||
up time.</P
|
|
||||||
></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:
|
|
||||||
|
|
||||||
<A
|
|
||||||
NAME="AEN54"
|
|
||||||
></A
|
|
||||||
><BLOCKQUOTE
|
|
||||||
CLASS="BLOCKQUOTE"
|
|
||||||
><P
|
|
||||||
>run that command once between 2am and 5am</P
|
|
||||||
></BLOCKQUOTE
|
|
||||||
> which will be done if the system is running at any
|
|
||||||
time in this interval.</P
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>Fcron</SPAN
|
|
||||||
> 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:
|
|
||||||
<P
|
|
||||||
></P
|
|
||||||
><UL
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>run jobs one by one (fcrontab option
|
|
||||||
<A
|
|
||||||
HREF="fcrontab.5.html#FCRONTAB.5.SERIAL"
|
|
||||||
><CODE
|
|
||||||
CLASS="VARNAME"
|
|
||||||
>serial</CODE
|
|
||||||
></A
|
|
||||||
>),</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>set the max system load average value under
|
|
||||||
which the job should be run (fcrontab option <A
|
|
||||||
HREF="fcrontab.5.html#FCRONTAB.5.LAVG"
|
|
||||||
><CODE
|
|
||||||
CLASS="VARNAME"
|
|
||||||
>lavg</CODE
|
|
||||||
></A
|
|
||||||
>),</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>set a nice value for a job (fcrontab option
|
|
||||||
<A
|
|
||||||
HREF="fcrontab.5.html#FCRONTAB.5.NICE"
|
|
||||||
><CODE
|
|
||||||
CLASS="VARNAME"
|
|
||||||
>nice</CODE
|
|
||||||
></A
|
|
||||||
>),</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>run jobs at <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
>'s startup if they should
|
|
||||||
have been run during system down time (fcrontab option
|
|
||||||
<A
|
|
||||||
HREF="fcrontab.5.html#FCRONTAB.5.BOOTRUN"
|
|
||||||
><CODE
|
|
||||||
CLASS="VARNAME"
|
|
||||||
>bootrun</CODE
|
|
||||||
></A
|
|
||||||
>),</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>mail user to tell him a job has not run and why
|
|
||||||
(fcrontab option <A
|
|
||||||
HREF="fcrontab.5.html#FCRONTAB.5.NOTICENOTRUN"
|
|
||||||
><CODE
|
|
||||||
CLASS="VARNAME"
|
|
||||||
>noticenotrun</CODE
|
|
||||||
></A
|
|
||||||
>),</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>a better management of the mailing of outputs
|
|
||||||
...</P
|
|
||||||
></LI
|
|
||||||
></UL
|
|
||||||
>
|
|
||||||
</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT2"
|
|
||||||
><H2
|
|
||||||
CLASS="SECT2"
|
|
||||||
><A
|
|
||||||
NAME="AEN82"
|
|
||||||
>1.1.2. License</A
|
|
||||||
></H2
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>Fcron</SPAN
|
|
||||||
> is distributed under GPL license (please read the license
|
|
||||||
in the <A
|
|
||||||
HREF="gpl.html"
|
|
||||||
>gpl</A
|
|
||||||
> file).</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT2"
|
|
||||||
><H2
|
|
||||||
CLASS="SECT2"
|
|
||||||
><A
|
|
||||||
NAME="AEN87"
|
|
||||||
>1.1.3. Requirements</A
|
|
||||||
></H2
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><UL
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>a <SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>Linux/Unix system</SPAN
|
|
||||||
></P
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>Fcron</SPAN
|
|
||||||
> should work on every
|
|
||||||
<SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>POSIX</SPAN
|
|
||||||
> system, but it has been developed on
|
|
||||||
<SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>Mandrake</SPAN
|
|
||||||
> Linux (so it should work without any
|
|
||||||
problems on <SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>Redhat</SPAN
|
|
||||||
>).</P
|
|
||||||
><P
|
|
||||||
>Fcron has been reported to work correctly on:
|
|
||||||
</P
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><UL
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>Linux Mandrake</SPAN
|
|
||||||
>
|
|
||||||
</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>Linux Debian 3.0</SPAN
|
|
||||||
>
|
|
||||||
</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>LFS</SPAN
|
|
||||||
></P
|
|
||||||
><P
|
|
||||||
>(take a look at the <A
|
|
||||||
HREF="http://www.linuxfromscratch.org/blfs/"
|
|
||||||
TARGET="_top"
|
|
||||||
>Beyond
|
|
||||||
LFS book</A
|
|
||||||
> to find the installation
|
|
||||||
informations).</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>FreeBSD 4.2</SPAN
|
|
||||||
>
|
|
||||||
</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>OpenBSD 2.8</SPAN
|
|
||||||
>
|
|
||||||
</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>NetBSD 2.0</SPAN
|
|
||||||
>
|
|
||||||
</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>Darwin/MacOS-X</SPAN
|
|
||||||
></P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>Solaris 8</SPAN
|
|
||||||
>
|
|
||||||
</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>AIX 4.3.3</SPAN
|
|
||||||
>
|
|
||||||
</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
><SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>HP-UX 11.11</SPAN
|
|
||||||
>
|
|
||||||
</P
|
|
||||||
></LI
|
|
||||||
></UL
|
|
||||||
><P
|
|
||||||
>but fcron should work on other OS as well. Yet,
|
|
||||||
if you have troubles
|
|
||||||
making it work on a <SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>POSIX</SPAN
|
|
||||||
> system, please
|
|
||||||
contact me at <CODE
|
|
||||||
CLASS="EMAIL"
|
|
||||||
><<A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>fcron@free.fr</A
|
|
||||||
>></CODE
|
|
||||||
>.</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>a running <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>syslog</SPAN
|
|
||||||
> (or you
|
|
||||||
won't have any log)</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>a running mail system (
|
|
||||||
<SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>sendmail</SPAN
|
|
||||||
> or <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>postfix</SPAN
|
|
||||||
> for
|
|
||||||
example) (or users will not able to read their jobs output)
|
|
||||||
</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>(optional) a <SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>PAM</SPAN
|
|
||||||
>
|
|
||||||
library.</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>(optional) a system with a working <SPAN
|
|
||||||
CLASS="PRODUCTNAME"
|
|
||||||
>SE Linux</SPAN
|
|
||||||
> environment.</P
|
|
||||||
></LI
|
|
||||||
></UL
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT2"
|
|
||||||
><H2
|
|
||||||
CLASS="SECT2"
|
|
||||||
><A
|
|
||||||
NAME="AEN148"
|
|
||||||
>1.1.4. Compilation and installation</A
|
|
||||||
></H2
|
|
||||||
><P
|
|
||||||
>See the <A
|
|
||||||
HREF="install.html"
|
|
||||||
>install</A
|
|
||||||
> file (either install.txt
|
|
||||||
or install.html).</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT2"
|
|
||||||
><H2
|
|
||||||
CLASS="SECT2"
|
|
||||||
><A
|
|
||||||
NAME="AEN152"
|
|
||||||
>1.1.5. Configuration</A
|
|
||||||
></H2
|
|
||||||
><P
|
|
||||||
>See the <A
|
|
||||||
HREF="fcron.8.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
>(8)</A
|
|
||||||
>, <A
|
|
||||||
HREF="fcrontab.5.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
>(5)</A
|
|
||||||
> and <A
|
|
||||||
HREF="fcrontab.1.html"
|
|
||||||
><SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcrontab</SPAN
|
|
||||||
>(1)</A
|
|
||||||
> manpages.</P
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT2"
|
|
||||||
><H2
|
|
||||||
CLASS="SECT2"
|
|
||||||
><A
|
|
||||||
NAME="AEN161"
|
|
||||||
>1.1.6. Bug reports, corrections, propositions...</A
|
|
||||||
></H2
|
|
||||||
><P
|
|
||||||
>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 <CODE
|
|
||||||
CLASS="EMAIL"
|
|
||||||
><<A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>fcron@free.fr</A
|
|
||||||
>></CODE
|
|
||||||
></P
|
|
||||||
><P
|
|
||||||
>Please contact Russell Coker directly for problems about SE Linux support at <CODE
|
|
||||||
CLASS="EMAIL"
|
|
||||||
><<A
|
|
||||||
HREF="mailto:russell@coker.com.au"
|
|
||||||
>russell@coker.com.au</A
|
|
||||||
>></CODE
|
|
||||||
>, since he maintains this part of the code.</P
|
|
||||||
></DIV
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVFOOTER"
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Footer navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="how-and-why.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="index.html"
|
|
||||||
ACCESSKEY="H"
|
|
||||||
>Home</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="install.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
>Fcron: how and why?</TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="how-and-why.html"
|
|
||||||
ACCESSKEY="U"
|
|
||||||
>Up</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>How to install fcron</TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></DIV
|
|
||||||
></BODY
|
|
||||||
></HTML
|
|
||||||
>
|
|
||||||
|
|
@ -1,190 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<HTML
|
|
||||||
><HEAD
|
|
||||||
><TITLE
|
|
||||||
>Release notes: fcron 3.2.0</TITLE
|
|
||||||
><META
|
|
||||||
NAME="GENERATOR"
|
|
||||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
|
||||||
REL="HOME"
|
|
||||||
TITLE="Fcron documentation"
|
|
||||||
HREF="index.html"><LINK
|
|
||||||
REL="UP"
|
|
||||||
TITLE="Fcron: how and why?"
|
|
||||||
HREF="how-and-why.html"><LINK
|
|
||||||
REL="PREVIOUS"
|
|
||||||
TITLE="Changes"
|
|
||||||
HREF="changes.html"><LINK
|
|
||||||
REL="NEXT"
|
|
||||||
TITLE="Todo"
|
|
||||||
HREF="todo.html"></HEAD
|
|
||||||
><BODY
|
|
||||||
CLASS="SECT1"
|
|
||||||
BGCOLOR="#FFFFFF"
|
|
||||||
TEXT="#000000"
|
|
||||||
LINK="#0000FF"
|
|
||||||
VLINK="#840084"
|
|
||||||
ALINK="#0000FF"
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVHEADER"
|
|
||||||
><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="LEGALNOTICE.html"
|
|
||||||
>Copyright</A
|
|
||||||
> © 2000-2014 <A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>Thibault Godouet</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="20%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
>Fcron 3.2.0 </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>Web page : <A
|
|
||||||
HREF="http://fcron.free.fr"
|
|
||||||
>http://fcron.free.fr</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TH
|
|
||||||
COLSPAN="3"
|
|
||||||
ALIGN="center"
|
|
||||||
>Fcron documentation</TH
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="changes.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="80%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="bottom"
|
|
||||||
>Chapter 1. Fcron: how and why?</TD
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="todo.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="RELNOTES"
|
|
||||||
>1.4. Release notes: <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> 3.2.0</A
|
|
||||||
></H1
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><UL
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>Nothing special to be aware of in this release.</P
|
|
||||||
></LI
|
|
||||||
></UL
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVFOOTER"
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Footer navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="changes.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="index.html"
|
|
||||||
ACCESSKEY="H"
|
|
||||||
>Home</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="todo.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
>Changes</TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="how-and-why.html"
|
|
||||||
ACCESSKEY="U"
|
|
||||||
>Up</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>Todo</TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></DIV
|
|
||||||
></BODY
|
|
||||||
></HTML
|
|
||||||
>
|
|
||||||
|
|
@ -1,330 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<HTML
|
|
||||||
><HEAD
|
|
||||||
><TITLE
|
|
||||||
>Thanks</TITLE
|
|
||||||
><META
|
|
||||||
NAME="GENERATOR"
|
|
||||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
|
||||||
REL="HOME"
|
|
||||||
TITLE="Fcron documentation"
|
|
||||||
HREF="index.html"><LINK
|
|
||||||
REL="UP"
|
|
||||||
TITLE="Fcron: how and why?"
|
|
||||||
HREF="how-and-why.html"><LINK
|
|
||||||
REL="PREVIOUS"
|
|
||||||
TITLE="Todo"
|
|
||||||
HREF="todo.html"><LINK
|
|
||||||
REL="NEXT"
|
|
||||||
TITLE="Using fcron ..."
|
|
||||||
HREF="using-fcron.html"></HEAD
|
|
||||||
><BODY
|
|
||||||
CLASS="SECT1"
|
|
||||||
BGCOLOR="#FFFFFF"
|
|
||||||
TEXT="#000000"
|
|
||||||
LINK="#0000FF"
|
|
||||||
VLINK="#840084"
|
|
||||||
ALINK="#0000FF"
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVHEADER"
|
|
||||||
><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="LEGALNOTICE.html"
|
|
||||||
>Copyright</A
|
|
||||||
> © 2000-2014 <A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>Thibault Godouet</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="20%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
>Fcron 3.2.0 </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>Web page : <A
|
|
||||||
HREF="http://fcron.free.fr"
|
|
||||||
>http://fcron.free.fr</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TH
|
|
||||||
COLSPAN="3"
|
|
||||||
ALIGN="center"
|
|
||||||
>Fcron documentation</TH
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="todo.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="80%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="bottom"
|
|
||||||
>Chapter 1. Fcron: how and why?</TD
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="using-fcron.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="THANKS"
|
|
||||||
>1.6. Thanks</A
|
|
||||||
></H1
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><DIV
|
|
||||||
CLASS="VARIABLELIST"
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
>Uwe Ohse <CODE
|
|
||||||
CLASS="EMAIL"
|
|
||||||
><<A
|
|
||||||
HREF="mailto:uwe@ohse.de"
|
|
||||||
>uwe@ohse.de</A
|
|
||||||
>></CODE
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Corrected a bug concerning the signals, has reported
|
|
||||||
security issues.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
>Max Heijndijk <CODE
|
|
||||||
CLASS="EMAIL"
|
|
||||||
><<A
|
|
||||||
HREF="mailto:cchq@wanadoo.nl"
|
|
||||||
>cchq@wanadoo.nl</A
|
|
||||||
>></CODE
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Has made the rpm packages.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
>Gabor Z. Papp <CODE
|
|
||||||
CLASS="EMAIL"
|
|
||||||
><<A
|
|
||||||
HREF="mailto:gzp@papp.hu"
|
|
||||||
>gzp@papp.hu</A
|
|
||||||
>></CODE
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Helped to correct some bugs in installation process and
|
|
||||||
reported various bugs.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
>Clemens Fischer <CODE
|
|
||||||
CLASS="EMAIL"
|
|
||||||
><<A
|
|
||||||
HREF="mailto:rabat@web.de"
|
|
||||||
>rabat@web.de</A
|
|
||||||
>></CODE
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Proofread docs, reported bugs, and made some
|
|
||||||
propositions.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
>Henrique de Moraes Holschuh
|
|
||||||
<CODE
|
|
||||||
CLASS="EMAIL"
|
|
||||||
><<A
|
|
||||||
HREF="mailto:hmh@debian.org"
|
|
||||||
>hmh@debian.org</A
|
|
||||||
>></CODE
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Has worked on fcron's integration in Linux Debian system,
|
|
||||||
reported bugs and corrected some of them, made some propositions.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
>Thomas Whateley <CODE
|
|
||||||
CLASS="EMAIL"
|
|
||||||
><<A
|
|
||||||
HREF="mailto:thomas@whateley.net"
|
|
||||||
>thomas@whateley.net</A
|
|
||||||
>></CODE
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Has done a big part of Solaris port, implemented the
|
|
||||||
fcron.conf file, and Vixie crontab format support.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
>Guy Geens <CODE
|
|
||||||
CLASS="EMAIL"
|
|
||||||
><<A
|
|
||||||
HREF="mailto:ggeens@iname.com"
|
|
||||||
>ggeens@iname.com</A
|
|
||||||
>></CODE
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Fixed a nasty bug in goto_non_matching() which caused an
|
|
||||||
endless loop (midmonthly jobs executed after the 15th of the month).</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
>Patrick Ohly <CODE
|
|
||||||
CLASS="EMAIL"
|
|
||||||
><<A
|
|
||||||
HREF="mailto:Patrick.Ohly@gmx.de"
|
|
||||||
>Patrick.Ohly@gmx.de</A
|
|
||||||
>></CODE
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>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.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
>Russell Coker <CODE
|
|
||||||
CLASS="EMAIL"
|
|
||||||
><<A
|
|
||||||
HREF="mailto:russell@coker.com.au"
|
|
||||||
>russell@coker.com.au</A
|
|
||||||
>></CODE
|
|
||||||
></B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Helped me to secure fcron, make code clearer,
|
|
||||||
and he wrote the patch for SE Linux support.</P
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
>Alain Portal</B
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><P
|
|
||||||
>Initial French translation of the manual pages.</P
|
|
||||||
></DD
|
|
||||||
></DL
|
|
||||||
></DIV
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVFOOTER"
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Footer navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="todo.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="index.html"
|
|
||||||
ACCESSKEY="H"
|
|
||||||
>Home</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="using-fcron.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
>Todo</TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="how-and-why.html"
|
|
||||||
ACCESSKEY="U"
|
|
||||||
>Up</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>Using fcron ...</TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></DIV
|
|
||||||
></BODY
|
|
||||||
></HTML
|
|
||||||
>
|
|
||||||
|
|
@ -1,350 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<HTML
|
|
||||||
><HEAD
|
|
||||||
><TITLE
|
|
||||||
>Todo</TITLE
|
|
||||||
><META
|
|
||||||
NAME="GENERATOR"
|
|
||||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
|
||||||
REL="HOME"
|
|
||||||
TITLE="Fcron documentation"
|
|
||||||
HREF="index.html"><LINK
|
|
||||||
REL="UP"
|
|
||||||
TITLE="Fcron: how and why?"
|
|
||||||
HREF="how-and-why.html"><LINK
|
|
||||||
REL="PREVIOUS"
|
|
||||||
TITLE="Release notes: fcron 3.2.0"
|
|
||||||
HREF="relnotes.html"><LINK
|
|
||||||
REL="NEXT"
|
|
||||||
TITLE="Thanks"
|
|
||||||
HREF="thanks.html"></HEAD
|
|
||||||
><BODY
|
|
||||||
CLASS="SECT1"
|
|
||||||
BGCOLOR="#FFFFFF"
|
|
||||||
TEXT="#000000"
|
|
||||||
LINK="#0000FF"
|
|
||||||
VLINK="#840084"
|
|
||||||
ALINK="#0000FF"
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVHEADER"
|
|
||||||
><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="LEGALNOTICE.html"
|
|
||||||
>Copyright</A
|
|
||||||
> © 2000-2014 <A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>Thibault Godouet</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="20%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
>Fcron 3.2.0 </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>Web page : <A
|
|
||||||
HREF="http://fcron.free.fr"
|
|
||||||
>http://fcron.free.fr</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TH
|
|
||||||
COLSPAN="3"
|
|
||||||
ALIGN="center"
|
|
||||||
>Fcron documentation</TH
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="relnotes.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="80%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="bottom"
|
|
||||||
>Chapter 1. Fcron: how and why?</TD
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="thanks.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT1"
|
|
||||||
><H1
|
|
||||||
CLASS="SECT1"
|
|
||||||
><A
|
|
||||||
NAME="TODO"
|
|
||||||
>1.5. Todo</A
|
|
||||||
></H1
|
|
||||||
><P
|
|
||||||
>Here are some things that should be done ... Note that some of these
|
|
||||||
entries are just some ideas, which <EM
|
|
||||||
>may</EM
|
|
||||||
> be done in
|
|
||||||
the long run.</P
|
|
||||||
><P
|
|
||||||
>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 ;) .
|
|
||||||
</P
|
|
||||||
><P
|
|
||||||
>If you plan to help me, please send a mail at <CODE
|
|
||||||
CLASS="EMAIL"
|
|
||||||
><<A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>fcron@free.fr</A
|
|
||||||
>></CODE
|
|
||||||
> 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 ;) .</P
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT2"
|
|
||||||
><H2
|
|
||||||
CLASS="SECT2"
|
|
||||||
><A
|
|
||||||
NAME="AEN988"
|
|
||||||
>1.5.1. High priority</A
|
|
||||||
></H2
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><UL
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>Option to compile and install from git sources without generating the doc</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>register in OS suspend/hibernate mechanism to stop fcron when going to sleep and start it again when resuming from sleep (see FAQ entry).</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
></LI
|
|
||||||
></UL
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT2"
|
|
||||||
><H2
|
|
||||||
CLASS="SECT2"
|
|
||||||
><A
|
|
||||||
NAME="AEN997"
|
|
||||||
>1.5.2. Low priority</A
|
|
||||||
></H2
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><UL
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>Add unit tests using some unit-test framework (turn the tests/* code into unit tests)</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>For environment settings, make a var substitution.</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>add a mailsubject option, for custom mail subjects (for instance, in case of a job containing something secret -- password, etc -- in the command line).</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>Use directory notifications (FAM) / inotify, and support a fcrontab
|
|
||||||
and a cron.d as Vixie cron does (directly included in fcron itself, not thanks to a script as now).
|
|
||||||
However the parsing work is done by fcrontab, and should probably keep on being done by fcrontab for
|
|
||||||
security and stability reasons: have fcron call fcrontab to do that job?</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>could be worth checking fcron for memory leaks using specialized library (just in case...)</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>option to put a maximum limit on the execution time of a task + terminate it if not finished yet + send email to let the user know</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>setting to limit the number of jobs of a single user in the serialq/lavgq to X jobs + make sure root always has Y slots that it can use in those queues (i.e. number of slots used by root + number of free slots >= Y)</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>Test (and use ?) docbook2x-man -- xlstproc ? cf http://antoine.ginies.free.fr/docbook/ch09.html</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>find way to have the non translated pages of the French translation be updated automatically (changes, todo, etc -> copied from the English doc)</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>add a return code for jobs which would mean that they
|
|
||||||
should not be run again (in case of an error, etc...).</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>PAM support (included in fcron, but needs more tests by
|
|
||||||
people using PAM - not implemented in fcrondyn: is it needed
|
|
||||||
in fcrondyn anyway?)</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>support for per user serial queue (especially for root)</P
|
|
||||||
></LI
|
|
||||||
></UL
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="SECT2"
|
|
||||||
><H2
|
|
||||||
CLASS="SECT2"
|
|
||||||
><A
|
|
||||||
NAME="AEN1024"
|
|
||||||
>1.5.3. Ideas</A
|
|
||||||
></H2
|
|
||||||
><P
|
|
||||||
></P
|
|
||||||
><UL
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>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.).</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>(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.</P
|
|
||||||
><P
|
|
||||||
>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?</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>add an option/module to prevent fcron from running a job if the
|
|
||||||
system is running on battery (anacron does it?)</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>Add a way to stop a job (SIGSTOP) if the lavg gets to high,
|
|
||||||
and restart it (SIGCONT) when the lavg has decreased.</P
|
|
||||||
></LI
|
|
||||||
><LI
|
|
||||||
><P
|
|
||||||
>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)
|
|
||||||
</P
|
|
||||||
></LI
|
|
||||||
></UL
|
|
||||||
></DIV
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVFOOTER"
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Footer navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="relnotes.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="index.html"
|
|
||||||
ACCESSKEY="H"
|
|
||||||
>Home</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="thanks.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
>Release notes: <SPAN
|
|
||||||
CLASS="APPLICATION"
|
|
||||||
>fcron</SPAN
|
|
||||||
> 3.2.0</TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="how-and-why.html"
|
|
||||||
ACCESSKEY="U"
|
|
||||||
>Up</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>Thanks</TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></DIV
|
|
||||||
></BODY
|
|
||||||
></HTML
|
|
||||||
>
|
|
||||||
|
|
@ -1,220 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<HTML
|
|
||||||
><HEAD
|
|
||||||
><TITLE
|
|
||||||
>Using fcron ...</TITLE
|
|
||||||
><META
|
|
||||||
NAME="GENERATOR"
|
|
||||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
|
||||||
REL="HOME"
|
|
||||||
TITLE="Fcron documentation"
|
|
||||||
HREF="index.html"><LINK
|
|
||||||
REL="PREVIOUS"
|
|
||||||
TITLE="Thanks"
|
|
||||||
HREF="thanks.html"><LINK
|
|
||||||
REL="NEXT"
|
|
||||||
TITLE="Manual pages of fcron"
|
|
||||||
HREF="manpages.html"></HEAD
|
|
||||||
><BODY
|
|
||||||
CLASS="CHAPTER"
|
|
||||||
BGCOLOR="#FFFFFF"
|
|
||||||
TEXT="#000000"
|
|
||||||
LINK="#0000FF"
|
|
||||||
VLINK="#840084"
|
|
||||||
ALINK="#0000FF"
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVHEADER"
|
|
||||||
><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="LEGALNOTICE.html"
|
|
||||||
>Copyright</A
|
|
||||||
> © 2000-2014 <A
|
|
||||||
HREF="mailto:fcron@free.fr"
|
|
||||||
>Thibault Godouet</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="20%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
>Fcron 3.2.0 </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="40%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>Web page : <A
|
|
||||||
HREF="http://fcron.free.fr"
|
|
||||||
>http://fcron.free.fr</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Header navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TH
|
|
||||||
COLSPAN="3"
|
|
||||||
ALIGN="center"
|
|
||||||
>Fcron documentation</TH
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="thanks.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="80%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="bottom"
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="10%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="bottom"
|
|
||||||
><A
|
|
||||||
HREF="manpages.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="CHAPTER"
|
|
||||||
><H1
|
|
||||||
><A
|
|
||||||
NAME="USING-FCRON"
|
|
||||||
></A
|
|
||||||
>Chapter 2. Using fcron ...</H1
|
|
||||||
><DIV
|
|
||||||
CLASS="TOC"
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
><B
|
|
||||||
>Table of Contents</B
|
|
||||||
></DT
|
|
||||||
><DT
|
|
||||||
>2.1. <A
|
|
||||||
HREF="manpages.html"
|
|
||||||
>Manual pages of fcron</A
|
|
||||||
></DT
|
|
||||||
><DD
|
|
||||||
><DL
|
|
||||||
><DT
|
|
||||||
><A
|
|
||||||
HREF="fcron.8.html"
|
|
||||||
>fcron</A
|
|
||||||
> -- daemon to execute scheduled tasks</DT
|
|
||||||
><DT
|
|
||||||
><A
|
|
||||||
HREF="fcron.conf.5.html"
|
|
||||||
>fcron.conf</A
|
|
||||||
> -- configuration file for fcron and fcrontab</DT
|
|
||||||
><DT
|
|
||||||
><A
|
|
||||||
HREF="fcrontab.1.html"
|
|
||||||
>fcrontab</A
|
|
||||||
> -- manipulate per-user fcrontab
|
|
||||||
files</DT
|
|
||||||
><DT
|
|
||||||
><A
|
|
||||||
HREF="fcrontab.5.html"
|
|
||||||
>fcrontab</A
|
|
||||||
> -- tables for driving fcron</DT
|
|
||||||
><DT
|
|
||||||
><A
|
|
||||||
HREF="fcrondyn.1.html"
|
|
||||||
>fcrondyn</A
|
|
||||||
> -- dialog dyn-amically with a running fcron daemon</DT
|
|
||||||
></DL
|
|
||||||
></DD
|
|
||||||
><DT
|
|
||||||
>2.2. <A
|
|
||||||
HREF="faq.html"
|
|
||||||
>Frequently Asked Questions</A
|
|
||||||
></DT
|
|
||||||
></DL
|
|
||||||
></DIV
|
|
||||||
></DIV
|
|
||||||
><DIV
|
|
||||||
CLASS="NAVFOOTER"
|
|
||||||
><HR
|
|
||||||
ALIGN="LEFT"
|
|
||||||
WIDTH="100%"><TABLE
|
|
||||||
SUMMARY="Footer navigation table"
|
|
||||||
WIDTH="100%"
|
|
||||||
BORDER="0"
|
|
||||||
CELLPADDING="0"
|
|
||||||
CELLSPACING="0"
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="thanks.html"
|
|
||||||
ACCESSKEY="P"
|
|
||||||
>Prev</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="index.html"
|
|
||||||
ACCESSKEY="H"
|
|
||||||
>Home</A
|
|
||||||
></TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
><A
|
|
||||||
HREF="manpages.html"
|
|
||||||
ACCESSKEY="N"
|
|
||||||
>Next</A
|
|
||||||
></TD
|
|
||||||
></TR
|
|
||||||
><TR
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="left"
|
|
||||||
VALIGN="top"
|
|
||||||
>Thanks</TD
|
|
||||||
><TD
|
|
||||||
WIDTH="34%"
|
|
||||||
ALIGN="center"
|
|
||||||
VALIGN="top"
|
|
||||||
> </TD
|
|
||||||
><TD
|
|
||||||
WIDTH="33%"
|
|
||||||
ALIGN="right"
|
|
||||||
VALIGN="top"
|
|
||||||
>Manual pages of fcron</TD
|
|
||||||
></TR
|
|
||||||
></TABLE
|
|
||||||
></DIV
|
|
||||||
></BODY
|
|
||||||
></HTML
|
|
||||||
>
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,397 +0,0 @@
|
||||||
<!--
|
|
||||||
Fcron documentation
|
|
||||||
Copyright 2000-2014 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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
<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 avoid 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 email with the exit status even if the command had no output.
|
|
||||||
How can I avoid the email?</para>
|
|
||||||
</question>
|
|
||||||
<answer>
|
|
||||||
<para>
|
|
||||||
You could disable email entirely by setting the "mail" option to "no". But,
|
|
||||||
if you still want to receive the standard output as email, 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 emails 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 command line arguments
|
|
||||||
&argonce;, <option>--nosyslog</option>,
|
|
||||||
&argfirstsleep; 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 Vixie cron's crontab syntax
|
|
||||||
fully. You should be able to use a crontab
|
|
||||||
with fcron with no modification (if not 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 does not do that by itself.
|
|
||||||
Fcron does not support the
|
|
||||||
/etc/cron.d/ directory either, as it is just an extension to the /etc/crontab
|
|
||||||
file.
|
|
||||||
However /etc/cron.{daily,weekly,monthly} directories will work
|
|
||||||
in fcron just fine: they are supported through the run-parts program, just as Vixie cron).</para>
|
|
||||||
<para>So if you want to replace Vixie cron by fcron transparently,
|
|
||||||
all you have to do is create a /usr/bin/crontab link to
|
|
||||||
/usr/bin/fcrontab, and reinstall the system (f)crontab
|
|
||||||
with 'fcrontab /etc/crontab' every time you modify it
|
|
||||||
(if you needed some more work than that, please let me know!).</para>
|
|
||||||
<para>You can also use the script script/check_system_crontabs
|
|
||||||
to monitor for system (f)crontab changes, i.e. changes to /etc/(f)crontab
|
|
||||||
and /etc/cron.d/. When it detects a change, it will generate
|
|
||||||
a new system fcrontab, and install it automatically.
|
|
||||||
Should you choose to use that script, please 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 fcron's behavior should be very similar
|
|
||||||
to Vixie cron regarding /etc/crontab and /etc/cron.d/.
|
|
||||||
</para>
|
|
||||||
</answer>
|
|
||||||
</qandaentry>
|
|
||||||
<qandaentry>
|
|
||||||
<question>
|
|
||||||
<para>How can I emulate an anacron entry?</para>
|
|
||||||
</question>
|
|
||||||
<answer>
|
|
||||||
<para>As anacron, fcron does not assume that the system runs permanently.
|
|
||||||
Thus, fcron features similar functionalities to anacron, but it
|
|
||||||
has different means to achieve it, in other words other ways to define
|
|
||||||
when a job should run. Fcron is in general much more flexible
|
|
||||||
than anacron.
|
|
||||||
The best thing to do is to have look at
|
|
||||||
<link linkend="fcrontab.5">&fcrontab;(5),</link> and choose the
|
|
||||||
type of line which is the most appropriate for your needs (this is
|
|
||||||
likely to be a @-line or a %-line).</para>
|
|
||||||
<para>On a Debian/Ubuntu, the default /etc/anacrontab looks like:<para>
|
|
||||||
<programlisting>1 5 cron.daily nice run-parts --report /etc/cron.daily
|
|
||||||
7 10 cron.weekly nice run-parts --report /etc/cron.weekly
|
|
||||||
@monthly 15 cron.monthly nice run-parts --report /etc/cron.monthly
|
|
||||||
</programlisting>
|
|
||||||
<para>A close fcron equivalent would be (see &optserial;):<para>
|
|
||||||
<programlisting># Run once a day/week/month, and ensure only one of those tasks is run at a time:
|
|
||||||
!reset
|
|
||||||
!serial,nice(10)
|
|
||||||
%daily * * run-parts --report /etc/cron.daily
|
|
||||||
%weekly * * run-parts --report /etc/cron.weekly
|
|
||||||
%monthly * * * run-parts --report /etc/cron.monthly</programlisting>
|
|
||||||
<para>Or you could go for something a bit more specific (see &optlavg;, &optnoticenotrun;):<para>
|
|
||||||
<programlisting># Only run the tasks out of office-hours when the system load is low
|
|
||||||
# and send an email to the user if fcron couldn't run the job:
|
|
||||||
!reset
|
|
||||||
!serial,lavg(0.5,1,1.5),noticenotrun,nice(10),mailto(admin@yourdomain.com)
|
|
||||||
%daily * 0-9,18-23 run-parts --report /etc/cron.daily
|
|
||||||
%weekly * 0-9,18-23 run-parts --report /etc/cron.weekly
|
|
||||||
%monthly * 0-9,18-23 * run-parts --report /etc/cron.monthly</programlisting>
|
|
||||||
<para>Also, if you do want to emulate an anacron entry of the form:</para>
|
|
||||||
<programlisting>0 delay job-identity /your/command</programlisting>
|
|
||||||
<para>then you can use something as:</para>
|
|
||||||
<programlisting>@runonce delay /your/command</programlisting>
|
|
||||||
</answer>
|
|
||||||
</qandaentry>
|
|
||||||
<qandaentry>
|
|
||||||
<question>
|
|
||||||
<para>How can I emulate a Vixie cron @reboot entry?</para>
|
|
||||||
</question>
|
|
||||||
<answer>
|
|
||||||
<para>No need to emulate any more, as
|
|
||||||
<link linkend="fcrontab.5.shortcuts">Vixie cron shortcuts</link>,
|
|
||||||
including @reboot, are now supported by fcron!</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:
|
|
||||||
-->
|
|
||||||
|
|
@ -1,108 +0,0 @@
|
||||||
<!doctype book PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
|
|
||||||
|
|
||||||
<!ENTITY % decl SYSTEM "fcron-doc.mod">
|
|
||||||
%decl;
|
|
||||||
|
|
||||||
]>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Fcron documentation
|
|
||||||
Copyright 2000-2014 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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
<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:
|
|
||||||
&docurlEN; . 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:
|
|
||||||
-->
|
|
||||||
|
|
@ -1,317 +0,0 @@
|
||||||
<!--
|
|
||||||
Fcron documentation
|
|
||||||
Copyright 2000-2014 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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
<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>daemon to execute scheduled tasks</refpurpose>
|
|
||||||
</refnamediv>
|
|
||||||
|
|
||||||
<refsynopsisdiv>
|
|
||||||
<cmdsynopsis>
|
|
||||||
<command>fcron</command>
|
|
||||||
<arg>-c <replaceable>file</replaceable></arg>
|
|
||||||
<arg>-d</arg>
|
|
||||||
<arg>-b</arg>
|
|
||||||
<arg>-s <replaceable>time</replaceable></arg>
|
|
||||||
<arg>-m <replaceable>num</replaceable></arg>
|
|
||||||
<arg>-q <replaceable>num</replaceable></arg>
|
|
||||||
</cmdsynopsis>
|
|
||||||
<cmdsynopsis>
|
|
||||||
<command>fcron</command>
|
|
||||||
<arg>-c <replaceable>file</replaceable></arg>
|
|
||||||
<arg>-d</arg>
|
|
||||||
<arg>-f</arg>
|
|
||||||
<arg>-o</arg>
|
|
||||||
<arg>-y</arg>
|
|
||||||
<arg>-p <replaceable>file</replaceable></arg>
|
|
||||||
<arg>-l <replaceable>time</replaceable></arg>
|
|
||||||
</cmdsynopsis>
|
|
||||||
<cmdsynopsis>
|
|
||||||
<command>fcron</command>
|
|
||||||
<arg>-n <replaceable>dir</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; should be started from <filename>/etc/rc</filename> or
|
|
||||||
<filename>/etc/rc.local</filename>. Unless the <option>-f</option> (or
|
|
||||||
<option>--foreground</option>) option is given, it will return immediately, so
|
|
||||||
you don't need to start it with '&'.</para>
|
|
||||||
<para>
|
|
||||||
&Fcron; loads users &fcrontabf;s (see <link
|
|
||||||
linkend="fcrontab.5">&fcrontab;(5)</link>) files previously installed by
|
|
||||||
<command>fcrontab</command> (see <link
|
|
||||||
linkend="fcrontab.1">&fcrontab;(1)</link>). Then, &fcron; calculates the time
|
|
||||||
and date of each job's next execution, and determines how long it has to sleep,
|
|
||||||
and sleeps for this amount of time. When it wakes up, it checks all jobs loaded
|
|
||||||
and runs them if needed. When a job is executed, &fcron; forks, changes its user
|
|
||||||
and group permissions to match those of the user the job is being done for,
|
|
||||||
executes that job and mails the outputs to the user (this can be changed: see
|
|
||||||
<link linkend="fcrontab.5">&fcrontab;(5)</link>).</para>
|
|
||||||
<para>
|
|
||||||
Informative message about what &fcron; is doing are sent to
|
|
||||||
<application>syslogd</application>(8) under facility <emphasis>cron</emphasis>,
|
|
||||||
priority <emphasis>notice</emphasis>. Warning and error messages are sent
|
|
||||||
respectively at priority <emphasis>warning</emphasis> and
|
|
||||||
<emphasis>error</emphasis>.</para>
|
|
||||||
<para><note>
|
|
||||||
<para>
|
|
||||||
&fcron; sleeps at least &firstsleep; seconds after it has been started before
|
|
||||||
executing a job to avoid to use too much resources during system boot.</para>
|
|
||||||
</note></para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Options</title>
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-f</option></term>
|
|
||||||
<term><option>--foreground</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Don't fork to the background. In this mode, &fcron; will
|
|
||||||
output informational message to standard error as well as to syslogd.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-b</option></term>
|
|
||||||
<term><option>--background</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Force running in background, even if &fcron; has been
|
|
||||||
compiled to run in foreground as default.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-s</option> <replaceable>time</replaceable></term>
|
|
||||||
<term><option>--savetime</option>
|
|
||||||
<replaceable>time</replaceable></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Save &fcrontabf;s on disk every
|
|
||||||
<replaceable>time</replaceable> sec (default is 1800).</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-m</option> <replaceable>num</replaceable></term>
|
|
||||||
<term><option>--maxserial</option>
|
|
||||||
<replaceable>num</replaceable></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Set to <replaceable>num</replaceable> the maximum number
|
|
||||||
of serial jobs which can run simultaneously. By default,
|
|
||||||
this value is set to &serialmaxrunning;.</para>
|
|
||||||
<para>&seealso; option &optserial; in &fcrontab;(5).</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-q</option> <replaceable>num</replaceable></term>
|
|
||||||
<term><option>--queuelen</option> <replaceable>num</replaceable></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Set to n the number of jobs the serial queue and
|
|
||||||
the lavg queue can contain.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-c</option> <replaceable>file</replaceable></term>
|
|
||||||
<term><option>--configfile</option>
|
|
||||||
<replaceable>file</replaceable></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Make &fcron; use config file
|
|
||||||
<replaceable>file</replaceable> instead of default config file
|
|
||||||
<filename>&etc;/&fcron.conf.location;</filename>. To interact with that running
|
|
||||||
&fcron; process, &fcrontab; must use the same config file (which is defined by
|
|
||||||
&fcrontab;'s option <option>-c</option>). That way, several &fcron; processes
|
|
||||||
can run simultaneously on an only system (but each &fcron; process *must* have a
|
|
||||||
different spool dir and pid file from the other processes).</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry id="fcron.8.once">
|
|
||||||
<term><option>-o</option></term>
|
|
||||||
<term><option>--once</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Execute all jobs that need to be run at the time &fcron;
|
|
||||||
was started, wait for them, then return. Sets &argfirstsleep; to 0.
|
|
||||||
May be especially useful when used with options <option>-y</option> and
|
|
||||||
<option>-f</option> in a script run, for instance, at dialup connection.</para>
|
|
||||||
<para>&seealso; fcrontab's options &optvolatile;,
|
|
||||||
&optstdout;.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-y</option></term>
|
|
||||||
<term><option>--nosyslog</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Don't log to syslog at all. May be useful when running
|
|
||||||
in foreground.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-p</option> <replaceable>file</replaceable></term>
|
|
||||||
<term><option>--logfilepath</option>
|
|
||||||
<replaceable>file</replaceable></term>
|
|
||||||
<listitem>
|
|
||||||
<para>If set, log to the file given as argument. &fcron; will
|
|
||||||
log to both that file and syslog in parallel unless
|
|
||||||
<option>-y</option> is also set.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry id="fcron.8.firstsleep">
|
|
||||||
<term><option>-l</option> <replaceable>time</replaceable></term>
|
|
||||||
<term><option>--firstsleep</option>
|
|
||||||
<replaceable>time</replaceable></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Sets the initial delay (in seconds) before any job is
|
|
||||||
executed, default to &firstsleep; seconds.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-n</option> <replaceable>dir</replaceable></term>
|
|
||||||
<term><option>--newspooldir</option>
|
|
||||||
<replaceable>dir</replaceable></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Create <replaceable>dir</replaceable> as a new spool
|
|
||||||
directory for &fcron;. Set correctly its mode and owner. Then, exit.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-h</option></term>
|
|
||||||
<term><option>--help</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Display a brief description of the options.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-V</option></term>
|
|
||||||
<term><option>--version</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Display an informational message about &fcron;,
|
|
||||||
including its version and the license under which it is distributed.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-d</option></term>
|
|
||||||
<term><option>--debug</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Run in debug mode (more details on stderr -- if option
|
|
||||||
<option>-f</option> is set -- and in log file)</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Return values</title>
|
|
||||||
<para>&Fcron; returns &exitok; on normal exit, and &exiterr; on
|
|
||||||
error.</para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Signals</title>
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term><constant>SIGTERM</constant></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Save configuration (time remaining until next
|
|
||||||
execution, time and date of next execution, etc), wait for all running jobs and
|
|
||||||
exit.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><constant>SIGUSR1</constant></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Force &fcron; to reload its configuration.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><constant>SIGUSR2</constant></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Make &fcron; print its current schedule on syslog. It
|
|
||||||
also toggles on/off the printing on debug info on syslog.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><constant>SIGHUP</constant></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Tell &fcron; to check if there is any configuration
|
|
||||||
update (this signal is used by &fcrontab;(5))</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Conforming to</title>
|
|
||||||
<para>Should be POSIX compliant.</para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Files</title>
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>&etc;/&fcron.conf.location;</filename></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Configuration file for &fcron;, &fcrontab; and
|
|
||||||
&fcrondyn;: contains paths (spool dir, pid file) and default programs to use
|
|
||||||
(editor, shell, etc). See <link linkend="fcron.conf.5">&fcron.conf;(5)</link>
|
|
||||||
for more details.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>&etc;/&fcron.allow;</filename></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Users allowed to use &fcrontab; and &fcrondyn; (one
|
|
||||||
name per line, special name "all" acts for everyone)</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>&etc;/&fcron.deny;</filename></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Users who are not allowed to use &fcrontab; and
|
|
||||||
&fcrondyn; (same format as allow file)</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>&etc;/pam.d/fcron</filename> (or
|
|
||||||
<filename>&etc;/pam.conf</filename>)</term>
|
|
||||||
<listitem>
|
|
||||||
<para><productname>PAM</productname> configuration file for
|
|
||||||
&fcron;. Take a look at &pam;(8) for more details.</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:
|
|
||||||
-->
|
|
||||||
|
|
@ -1,162 +0,0 @@
|
||||||
<!--
|
|
||||||
Fcron documentation
|
|
||||||
Copyright 2000-2014 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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
<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>configuration file for fcron and fcrontab</refpurpose>
|
|
||||||
</refnamediv>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Description</title>
|
|
||||||
<abstract>
|
|
||||||
<para>This page describes the syntax used for the configuration file
|
|
||||||
of <link linkend="fcrontab.1">&fcrontab;</link>(1), <link
|
|
||||||
linkend="fcrondyn.1">&fcrondyn;</link>(1) and <link
|
|
||||||
linkend="fcron.8">&fcron;</link>(8).</para>
|
|
||||||
</abstract>
|
|
||||||
<para>Blank lines, line beginning by a hash sign (#) (which are
|
|
||||||
considered comments), leading blanks and tabs are ignored. Each line in a
|
|
||||||
&fcron.conf file is of the form
|
|
||||||
<blockquote>
|
|
||||||
<para>name = value</para>
|
|
||||||
</blockquote> where the blanks around equal-sign (=) are ignored and
|
|
||||||
optional. Trailing blanks are also ignored.
|
|
||||||
</para>
|
|
||||||
<para>The following names are recognized (default value in parentheses):
|
|
||||||
<variablelist>
|
|
||||||
<title>Valid variables in a fcron.conf file</title>
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>fcrontabs</varname>=<replaceable>directory</replaceable>
|
|
||||||
(<filename>&fcrontabsdir;</filename>)</term>
|
|
||||||
<listitem>
|
|
||||||
<para>&Fcron; spool directory.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>pidfile</varname>=<replaceable>file-path</replaceable>
|
|
||||||
(<filename>&fcron.pid;</filename>)</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Location of &fcron; pid file (needed by &fcrontab;
|
|
||||||
to work properly).</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>fifofile</varname>=<replaceable>file-path</replaceable>
|
|
||||||
(<filename>&fcron.fifo;</filename>)</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Location of &fcron; fifo file (needed by
|
|
||||||
&fcrondyn; to communicate with &fcron;).</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>fcronallow</varname>=<replaceable>file-path</replaceable>
|
|
||||||
(<filename>&etc;/&fcron.allow;</filename>)</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Location of fcron.allow file.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>fcrondeny</varname>=<replaceable>file-path</replaceable>
|
|
||||||
(<filename>&etc;/&fcron.deny;</filename>)</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Location of fcron.deny file.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>shell</varname>=<replaceable>file-path</replaceable>
|
|
||||||
(<filename>&shell;</filename>)</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Location of default shell called by &fcron; when
|
|
||||||
running a job. When &fcron; runs a job, &fcron; uses the value of <envar>SHELL</envar> from the fcrontab if any, otherwise it uses the value from <filename>fcron.conf</filename> if any, or in last resort the value from <filename>/etc/passwd</filename>.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>sendmail</varname>=<replaceable>file-path</replaceable>
|
|
||||||
(<filename>&sendmail;</filename>)</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Location of mailer program called by &fcron; to
|
|
||||||
send job output.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>editor</varname>=<replaceable>file-path</replaceable>
|
|
||||||
(<filename>&editor;</filename>)</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Location of default editor used when invoking
|
|
||||||
"fcrontab -e".</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist> File-paths and directories are complete and absolute
|
|
||||||
(i.e. beginning by a "/").</para>
|
|
||||||
<para>To run several instances of &fcron; simultaneously on the same
|
|
||||||
system, you must use a different configuration file for each instance. Each
|
|
||||||
instance must have a different <varname>fcrontabs</varname>,
|
|
||||||
<varname>pidfile</varname> and <varname>fifofile</varname>. Then, use <link
|
|
||||||
linkend="fcron.8">&fcron;</link>(8)'s command line option
|
|
||||||
<parameter>-c</parameter> to select which config file (so which instance) you
|
|
||||||
refer to.</para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Files</title>
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>&etc;/&fcron.conf.location;</filename></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Configuration file for &fcron;, &fcrontab and
|
|
||||||
&fcrondyn;: contains paths (spool dir, pid file) and default programs to use
|
|
||||||
(editor, shell, etc). See <link linkend="fcron.conf.5">&fcron.conf</link>(5) for
|
|
||||||
more details.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>&etc;/&fcron.allow;</filename></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Users allowed to use &fcrontab; and &fcrondyn; (one
|
|
||||||
name per line, special name "all" acts for everyone)</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>&etc;/&fcron.deny;</filename></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Users who are not allowed to use &fcrontab; and
|
|
||||||
&fcrondyn; (same format as allow file)</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>&etc;/pam.d/fcron</filename> (or
|
|
||||||
<filename>&etc;/pam.conf</filename>)</term>
|
|
||||||
<listitem>
|
|
||||||
<para><productname>PAM</productname> configuration file for
|
|
||||||
&fcron;. Take a look at &pam;(8) for more details.</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" "refentry" "")
|
|
||||||
End:
|
|
||||||
-->
|
|
||||||
|
|
@ -1,375 +0,0 @@
|
||||||
<!--
|
|
||||||
Fcron documentation
|
|
||||||
Copyright 2000-2014 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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
<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>dialog dyn-amically with a running fcron daemon</refpurpose>
|
|
||||||
</refnamediv>
|
|
||||||
|
|
||||||
<refsynopsisdiv id="fcrondyn.1.synopsis">
|
|
||||||
<cmdsynopsis>
|
|
||||||
<command>fcrondyn</command>
|
|
||||||
<arg>-c <replaceable>file</replaceable></arg>
|
|
||||||
<arg>-i</arg>
|
|
||||||
</cmdsynopsis>
|
|
||||||
<cmdsynopsis>
|
|
||||||
<command>fcrondyn</command>
|
|
||||||
<arg>-c <replaceable>file</replaceable></arg>
|
|
||||||
<arg choice="plain">-x <replaceable>command</replaceable></arg>
|
|
||||||
</cmdsynopsis>
|
|
||||||
<cmdsynopsis>
|
|
||||||
<command>fcrondyn</command>
|
|
||||||
<arg>-h</arg>
|
|
||||||
</cmdsynopsis>
|
|
||||||
</refsynopsisdiv>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Description</title>
|
|
||||||
<para>&Fcrondyn; is a user tool intended to interact with a running
|
|
||||||
fcron daemon. It can, for instance, list user's jobs loaded by fcron, run one of
|
|
||||||
them, renice a running job, send a signal to a running job, etc.</para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Options</title>
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-i</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Run &fcrondyn; in interactive mode. &fcrondyn; is also
|
|
||||||
run in interactive mode when no option is given.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-x</option>
|
|
||||||
<replaceable>command</replaceable></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Run <replaceable>command</replaceable> and returns
|
|
||||||
immediately. <link linkend="fcrondyn.1.cmd.descp">See below</link> for syntax
|
|
||||||
and a list of commands.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-c</option> <replaceable>file</replaceable></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Make &fcrondyn; use config file
|
|
||||||
<replaceable>file</replaceable> instead of default config file
|
|
||||||
<filename>&etc;/&fcron.conf.location;</filename>. To interact with a running
|
|
||||||
&fcron; process, &fcrondyn; must use the same config file as the process. That
|
|
||||||
way, several &fcron; processes can run simultaneously on an only system.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-d</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Run in debug mode. In this mode, many informational
|
|
||||||
messages will be output in order to check if anything went wrong.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-h</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Display a brief description of the options.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-V</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Display an informational message about &fcrondyn;,
|
|
||||||
including its version and the license under which it is distributed.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1 id="fcrondyn.1.cmd.descp">
|
|
||||||
<title>Command description</title>
|
|
||||||
<para>&Fcrondyn;'s command syntax is the following: </para>
|
|
||||||
<blockquote>
|
|
||||||
<para><command>command</command> <replaceable>arg1</replaceable>
|
|
||||||
<replaceable>arg2</replaceable> [...]</para>
|
|
||||||
</blockquote>
|
|
||||||
<para>An argument of a &fcrondyn; command is of one of the following
|
|
||||||
type:</para>
|
|
||||||
<variablelist>
|
|
||||||
<title>Argument types of &fcrondyn;'s commands</title>
|
|
||||||
<varlistentry>
|
|
||||||
<term><emphasis><type>user</type></emphasis></term>
|
|
||||||
<listitem>
|
|
||||||
<para>A valid user name.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><emphasis><type>jobid</type></emphasis></term>
|
|
||||||
<listitem>
|
|
||||||
<para>A job id given by one of &fcrondyn;'s
|
|
||||||
<command>ls*</command> commands (i.e. an integer).</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><emphasis><type>sig</type></emphasis></term>
|
|
||||||
<listitem>
|
|
||||||
<para>A signal number, or its name (case does not matter).
|
|
||||||
For instance, "term" or "15".</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><emphasis><type>niceval</type></emphasis></term>
|
|
||||||
<listitem>
|
|
||||||
<para>A job priority value. A
|
|
||||||
<emphasis><type>niceval</type></emphasis> is an integer from -20 (highest
|
|
||||||
priority) to 19 (lowest) (only root is allowed to use a negative value with this
|
|
||||||
option).</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
<para>Last, but not least, the following commands are recognized
|
|
||||||
(optional arguments are between []):</para>
|
|
||||||
<variablelist>
|
|
||||||
<title>Valid &fcrondyn;'s commands</title>
|
|
||||||
<varlistentry>
|
|
||||||
<term><command>help</command></term>
|
|
||||||
<term><command>h</command></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Print an help message about fcrondyn's
|
|
||||||
commands.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><command>quit</command></term>
|
|
||||||
<term><command>q</command></term>
|
|
||||||
<listitem>
|
|
||||||
<para>In interactive mode, quit fcrondyn.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><command>ls</command>
|
|
||||||
[<emphasis><type>user</type></emphasis>]</term>
|
|
||||||
<listitem>
|
|
||||||
<para>List all jobs of user. When <command>ls</command> is
|
|
||||||
run by root, all users are listed unless a user name is given as argument. <link
|
|
||||||
linkend="fcrondyn.1.ls.fields">See below</link> for some explanations about the
|
|
||||||
fields used by <command>ls*</command> commands.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><command>ls_lavgq</command>
|
|
||||||
[<emphasis><type>user</type></emphasis>]</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Same as <command>ls</command>, but list only the jobs
|
|
||||||
which are in the load-average queue (i.e. which are waiting for a lower load
|
|
||||||
average to be run).</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><command>ls_serialq</command>
|
|
||||||
[<emphasis><type>user</type></emphasis>]</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Same as <command>ls</command>, but list only the jobs
|
|
||||||
which are in the serial queue (i.e. which are waiting for
|
|
||||||
other jobs to be finished).</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><command>ls_exeq</command>
|
|
||||||
[<emphasis><type>user</type></emphasis>]</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Same as <command>ls</command>, but list only the jobs
|
|
||||||
which are running.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><command>detail</command>
|
|
||||||
<emphasis><type>jobid</type></emphasis></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Print details about a
|
|
||||||
job. <emphasis><type>jobid</type></emphasis> is the one given by
|
|
||||||
<command>ls</command>.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><command>runnow</command>
|
|
||||||
<emphasis><type>jobid</type></emphasis></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Instead of waiting for the next scheduled execution
|
|
||||||
time, run the job now. The next execution time is changed as
|
|
||||||
if the job had run on schedule.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><command>run</command>
|
|
||||||
<emphasis><type>jobid</type></emphasis></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Run the job now. Its next execution time is not changed.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><command>kill</command>
|
|
||||||
<emphasis><type>sig</type></emphasis>
|
|
||||||
<emphasis><type>jobid</type></emphasis></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Send a signal to a running job.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><command>renice</command>
|
|
||||||
<emphasis><type>niceval</type></emphasis>
|
|
||||||
<emphasis><type>jobid</type></emphasis></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Change the priority of a running job.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
<variablelist id="fcrondyn.1.ls.fields">
|
|
||||||
<title>Fields used by <command>detail</command> and
|
|
||||||
<command>ls*</command> commands</title>
|
|
||||||
<varlistentry>
|
|
||||||
<term>ID</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Job's unique identification number.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>USER</term>
|
|
||||||
<listitem>
|
|
||||||
<para>User who owns this job.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>PID</term>
|
|
||||||
<listitem>
|
|
||||||
<para>The pid of the running job.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>INDEX</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Index of the job in the serial queue (i.e. it will be run when all the jobs of an inferior index have been run)</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>R&Q</term>
|
|
||||||
<listitem>
|
|
||||||
<para>The job has this number instances of the given task which are either running or queued in the serial or lavg queue.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>OPTIONS</term>
|
|
||||||
<listitem>
|
|
||||||
<para>List of main options which are set for the task.
|
|
||||||
L for the jobs which run only under a given system Load average (option &optlavg;, &optlavg1;, &optlavg5; and &optlavg15;), LO (Load average Once) if only at most one instance of the task can be in the load average queue at a given time (option &optlavgonce;), S for serialized jobs (option &optserial;), SO for the jobs which will be serialized only for the next execution (Serial Once), and ES if several instances of the same job can run simultaneously (option &optexesev;).</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>LAVG</term>
|
|
||||||
<listitem>
|
|
||||||
<para>3 values, corresponding to the 1, 5, and 15-minute (in
|
|
||||||
this order) system load average values below which the job
|
|
||||||
will be run, otherwise it will be queued until the system
|
|
||||||
load average is appropriate (see &optlavg; option).</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>UNTIL</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Field corresponding to the &optuntil; option.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>STRICT</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Field corresponding to the &optstrict; option. Y for
|
|
||||||
yes, N for no.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>SCHEDULE</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Next run is scheduled at this time and date. Please note that fcrondyn prints the next execution time and date in the time zone of the system where fcron is running, and not the time zone which can be defined for using option &opttimezone;.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>CMD</term>
|
|
||||||
<listitem>
|
|
||||||
<para>The command that will be executed.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Return values</title>
|
|
||||||
<para>&Fcrondyn; returns &exitok; on normal exit and &exiterr; on
|
|
||||||
error.</para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Conforming to</title>
|
|
||||||
<para>Should be POSIX compliant.</para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1 id="fcrondyn.1.files">
|
|
||||||
<title>Files</title>
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>&etc;/&fcron.conf.location;</filename></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Configuration file for &fcron;, &fcrontab; and
|
|
||||||
&fcrondyn;: contains paths (spool dir, pid file) and default programs to use
|
|
||||||
(editor, shell, etc). See <link linkend="fcron.conf.5">&fcron.conf;(5)</link>
|
|
||||||
for more details.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>&etc;/&fcron.allow;</filename></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Users allowed to use &fcrontab; and &fcrondyn; (one
|
|
||||||
name per line, special name "all" acts for everyone)</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>&etc;/&fcron.deny;</filename></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Users who are not allowed to use &fcrontab; and
|
|
||||||
&fcrondyn; (same format as allow file)</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>&etc;/pam.d/fcron</filename> (or
|
|
||||||
<filename>&etc;/pam.conf</filename>)</term>
|
|
||||||
<listitem>
|
|
||||||
<para><productname>PAM</productname> configuration file for
|
|
||||||
&fcron;. Take a look at pam(8) for more details.</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:
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
@ -1,242 +0,0 @@
|
||||||
<!--
|
|
||||||
Fcron documentation
|
|
||||||
Copyright 2000-2014 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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
<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>manipulate per-user fcrontab
|
|
||||||
files</refpurpose>
|
|
||||||
</refnamediv>
|
|
||||||
|
|
||||||
<refsynopsisdiv id="fcrontab.1.synopsis">
|
|
||||||
<cmdsynopsis>
|
|
||||||
<command>fcrontab</command> <arg>-c
|
|
||||||
<replaceable>file</replaceable></arg> <arg>-n</arg> <arg
|
|
||||||
choice="plain"><replaceable>file</replaceable></arg>
|
|
||||||
<group>
|
|
||||||
<arg><replaceable>user</replaceable></arg> <arg>-u
|
|
||||||
<replaceable>user</replaceable></arg>
|
|
||||||
</group>
|
|
||||||
</cmdsynopsis>
|
|
||||||
<cmdsynopsis>
|
|
||||||
<command>fcrontab</command> <arg>-c
|
|
||||||
<replaceable>file</replaceable></arg> <arg>-n</arg>
|
|
||||||
<group choice="req">
|
|
||||||
<arg>-l</arg> <arg>-r</arg> <arg>-e</arg> <arg>-z</arg>
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<arg><replaceable>user</replaceable></arg> <arg>-u
|
|
||||||
<replaceable>user</replaceable></arg>
|
|
||||||
</group>
|
|
||||||
</cmdsynopsis>
|
|
||||||
<cmdsynopsis>
|
|
||||||
<command>fcrontab</command> <arg>-h</arg>
|
|
||||||
</cmdsynopsis>
|
|
||||||
</refsynopsisdiv>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Description</title> <para>&Fcrontab; is the program intended to
|
|
||||||
install, edit, list and remove the tables used by <link
|
|
||||||
linkend="fcron.8">&fcron;(8)</link> daemon. As &fcron; internally
|
|
||||||
uses a non-human readable format (this is needed because &fcron;
|
|
||||||
saves more informations than the user gives, for example the time
|
|
||||||
and date of next execution), the user cannot edit directly his
|
|
||||||
&fcrontabf; (the one used by &fcron;).</para> <para>When a user
|
|
||||||
installs a &fcrontabf;, the source file is saved in the spool
|
|
||||||
directory (<filename>&fcrontabsdir;</filename>) to allow future
|
|
||||||
editions, and a formatted file is generated for the &fcron; daemon,
|
|
||||||
which is signaled once about ten seconds before the next minute for
|
|
||||||
all changes made previously. The daemon is not informed of the changes
|
|
||||||
immediately but at most once a minute
|
|
||||||
to keep ill disposed users from blocking the daemon by installing
|
|
||||||
&fcrontabf;s over and over (ie. denial of service attack). We will call
|
|
||||||
"<emphasis>fcrontab</emphasis>" the source file of the &fcrontabf;
|
|
||||||
in the following.</para> <para>A user can install a &fcrontabf; if
|
|
||||||
he is listed in the <filename>&etc;/&fcron.allow;</filename> and not
|
|
||||||
(unless by the keyword all) listed in
|
|
||||||
<filename>&etc;/&fcron.deny;</filename> (see section "<link
|
|
||||||
linkend="fcrontab.1.files">files</link>" below). If neither
|
|
||||||
<filename>fcron.allow</filename> nor <filename>fcron.deny</filename>
|
|
||||||
exist, all users are allowed. None of these files have to exist, but
|
|
||||||
if they do, the deny file takes precedence.</para> <para>The first
|
|
||||||
form of the command is used to install a new &fcrontabf; file, from
|
|
||||||
any named file or from standard input if the pseudo-filename "-" is
|
|
||||||
given, replacing the previous one (if any): each user can have only
|
|
||||||
one &fcrontabf;.</para> <para>For instance, root can create a
|
|
||||||
systemwide fcrontab file, say <filename>/etc/fcrontab</filename>,
|
|
||||||
and run "<command>fcrontab</command>
|
|
||||||
<filename>/etc/fcrontab</filename>" to install the new version after
|
|
||||||
each change of the file. Or (s)he can create a new fcrontab running
|
|
||||||
a simple "<command>fcrontab</command>", and then maintain it using
|
|
||||||
"<command>fcrontab</command> <option>-e</option>". Same
|
|
||||||
considerations apply to a non privileged user.</para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Options</title>
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-u</option> <replaceable>user</replaceable></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Specify the user whose &fcrontabf; will be managed, or
|
|
||||||
"&sysfcrontab;" for the system fcrontab. Should only be
|
|
||||||
used by root. If not given, the &fcrontabf; file of the
|
|
||||||
user invoking &fcrontab; will be handled. It may be useful
|
|
||||||
since the <application>su</application>(8) command may
|
|
||||||
confuse &fcrontab;. <note><para>the
|
|
||||||
'<replaceable>user</replaceable>' in the <link
|
|
||||||
linkend="fcrontab.1.synopsis">synopsys</link> is equivalent
|
|
||||||
to a '<option>-u</option>
|
|
||||||
<replaceable>user</replaceable>'.</para> </note></para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-l</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>List user's current &fcrontabf; to standard
|
|
||||||
output.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-e</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Edit user's current &fcrontabf; using either the editor
|
|
||||||
specified by the environment variable
|
|
||||||
<envar>VISUAL</envar>, or <envar>EDITOR</envar> if
|
|
||||||
<envar>VISUAL</envar> is not set. If none or them are set,
|
|
||||||
<command>&editor;</command> will be used.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-r</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Remove user's &fcrontabf;.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-z</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Reinstall user's &fcrontabf; from its source code. All
|
|
||||||
informations &fcron; may have kept in the binary
|
|
||||||
&fcrontabf; (such as the last execution time and date) will
|
|
||||||
be forgotten (ie. lost).</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-n</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Ignore previous version. If this option is not given,
|
|
||||||
&fcron; will try to keep as much information as possible
|
|
||||||
between old and new version of the &fcrontabf; (time and
|
|
||||||
date of next execution, if job is in serial queue, etc) if
|
|
||||||
the line hasn't been modified (same fields, same shell
|
|
||||||
command).</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-c</option> <replaceable>file</replaceable></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Make &fcrontab; use config file
|
|
||||||
<replaceable>file</replaceable> instead of default config
|
|
||||||
file <filename>&etc;/&fcron.conf.location;</filename>. To
|
|
||||||
interact with a running &fcron; process, &fcrontab; must
|
|
||||||
use the same config file as the process. That way, several
|
|
||||||
&fcron; processes can run simultaneously on an only
|
|
||||||
system.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-d</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Run in debug mode. In this mode, many informational
|
|
||||||
messages will be output in order to check if anything went
|
|
||||||
wrong.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-h</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Display a brief description of the options.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-V</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Display an informational message about &fcrontab;,
|
|
||||||
including its version and the license under which it is
|
|
||||||
distributed.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Return values</title> <para>&Fcrontab; returns &exitok; on
|
|
||||||
normal exit and &exiterr; on error.</para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Conforming to</title> <para>Should be POSIX compliant.</para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1 id="fcrontab.1.files">
|
|
||||||
<title>Files</title>
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>&etc;/&fcron.conf.location;</filename></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Configuration file for &fcron;, &fcrontab; and
|
|
||||||
&fcrondyn;: contains paths (spool dir, pid file) and
|
|
||||||
default programs to use (editor, shell, etc). See <link
|
|
||||||
linkend="fcron.conf.5">&fcron.conf;(5)</link> for more
|
|
||||||
details.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>&etc;/&fcron.allow;</filename></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Users allowed to use &fcrontab; and &fcrondyn; (one name
|
|
||||||
per line, special name "all" acts for everyone)</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>&etc;/&fcron.deny;</filename></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Users who are not allowed to use &fcrontab; and
|
|
||||||
&fcrondyn; (same format as allow file)</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>&etc;/pam.d/fcron</filename> (or
|
|
||||||
<filename>&etc;/pam.conf</filename>)</term>
|
|
||||||
<listitem>
|
|
||||||
<para><productname>PAM</productname> configuration file for
|
|
||||||
&fcron;. Take a look at pam(8) for more details.</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:
|
|
||||||
-->
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,409 +0,0 @@
|
||||||
<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:
|
|
||||||
-->
|
|
||||||
|
|
@ -1,339 +0,0 @@
|
||||||
<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:
|
|
||||||
-->
|
|
||||||
|
|
@ -1,186 +0,0 @@
|
||||||
<!--
|
|
||||||
Fcron documentation
|
|
||||||
Copyright 2000-2014 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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
<sect1 id="install">
|
|
||||||
<title>How to install fcron</title>
|
|
||||||
<sect2>
|
|
||||||
<title>Compilation requirements</title>
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem><para>A C compiler (e.g. gcc)</para></listitem>
|
|
||||||
<listitem><para>(optional) <productname>readline</productname> development
|
|
||||||
library (e.g. libreadline-dev)</para></listitem>
|
|
||||||
<listitem><para>(optional) <productname>PAM</productname> development
|
|
||||||
library (e.g. libpam0g-dev)</para></listitem>
|
|
||||||
<listitem><para>(optional) <productname>SE Linux</productname> development library (e.g. libselinux1-dev)</para></listitem>
|
|
||||||
<listitem><para>(optional) <productname>Linux audit</productname> development library (e.g. libaudit-dev)</para></listitem>
|
|
||||||
<listitem><para>If compiling from git checkout (rather than a tarball), then no generated file will be included out of the box, so you will need more tools to generate them. In particular the ./configure script and the documentation will be generated from the sources.</para>
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem><para>git</para></listitem>
|
|
||||||
<listitem><para>autoconf</para></listitem>
|
|
||||||
<listitem><para>docbook</para></listitem>
|
|
||||||
<listitem><para>docbook-xsl</para></listitem>
|
|
||||||
<listitem><para>docbook-xml</para></listitem>
|
|
||||||
<listitem><para>docbook-util</para></listitem>
|
|
||||||
<listitem><para>manpages-dev</para></listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</sect2>
|
|
||||||
<sect2>
|
|
||||||
<title>Compilation and installation instructions</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>
|
|
||||||
If you can't see a <filename>./configure</filename>, then you probably checked out the files from git, in which case you need to run <command>autoconf</command> to generate the <filename>configure</filename> script.</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
If using <productname>PAM</productname>, beware that by default the <productname>PAM</productname> configuration will be installed in <filename>/usr/local/etc/</filename>. That most likely mean that your system won't use this config, and may ask you to type your password everytime you start fcrontab or fcrondyn.</para>
|
|
||||||
<para>The simplest way to avoid this is to instruct configure to use <filename>/etc</filename> instead with:</para>
|
|
||||||
<screen><prompt>bash$ </prompt><command>./configure --sysconfdir=/etc</command></screen>
|
|
||||||
</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:
|
|
||||||
</para>
|
|
||||||
<screen><prompt>bash$ </prompt><command>./configure --prefix=/usr--sysconfdir=/etc</command></screen>
|
|
||||||
<para>(default is <option>prefix=/usr/local</option> and <option>sysconfdir=${prefix}/etc</option>).</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>
|
|
||||||
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
|
|
||||||
--help</command>" for more details).
|
|
||||||
</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 --help</command>".
|
|
||||||
</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>
|
|
||||||
</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:
|
|
||||||
-->
|
|
||||||
|
|
@ -1,168 +0,0 @@
|
||||||
.\" Copyright (c) 1989 The Regents of the University of California.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" This code is derived from software contributed to Berkeley by
|
|
||||||
.\" Paul Vixie.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms are permitted
|
|
||||||
.\" provided that the above copyright notice and this paragraph are
|
|
||||||
.\" duplicated in all such forms and that any documentation,
|
|
||||||
.\" advertising materials, and other materials related to such
|
|
||||||
.\" distribution and use acknowledge that the software was developed
|
|
||||||
.\" by the University of California, Berkeley. The name of the
|
|
||||||
.\" University may not be used to endorse or promote products derived
|
|
||||||
.\" from this software without specific prior written permission.
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
|
|
||||||
.\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
|
||||||
.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
.\"
|
|
||||||
.\" @(#)bitstring.3 5.1 (Berkeley) 12/13/89
|
|
||||||
.\"
|
|
||||||
.TH BITSTRING 3 "December 13, 1989"
|
|
||||||
.UC 4
|
|
||||||
.SH NAME
|
|
||||||
bit_alloc, bit_clear, bit_decl, bit_ffs, bit_nclear, bit_nset,
|
|
||||||
bit_set, bitstr_size, bit_test \- bit-string manipulation macros
|
|
||||||
.SH SYNOPSIS
|
|
||||||
.ft B
|
|
||||||
.nf
|
|
||||||
#include <bitstring.h>
|
|
||||||
|
|
||||||
name = bit_alloc(nbits)
|
|
||||||
bitstr_t *name;
|
|
||||||
int nbits;
|
|
||||||
|
|
||||||
bit_decl(name, nbits)
|
|
||||||
bitstr_t name;
|
|
||||||
int nbits;
|
|
||||||
|
|
||||||
bit_clear(name, bit)
|
|
||||||
bitstr_t name;
|
|
||||||
int bit;
|
|
||||||
|
|
||||||
bit_ffc(name, nbits, value)
|
|
||||||
bitstr_t name;
|
|
||||||
int nbits, *value;
|
|
||||||
|
|
||||||
bit_ffs(name, nbits, value)
|
|
||||||
bitstr_t name;
|
|
||||||
int nbits, *value;
|
|
||||||
|
|
||||||
bit_nclear(name, start, stop)
|
|
||||||
bitstr_t name;
|
|
||||||
int start, stop;
|
|
||||||
|
|
||||||
bit_nset(name, start, stop)
|
|
||||||
bitstr_t name;
|
|
||||||
int start, stop;
|
|
||||||
|
|
||||||
bit_set(name, bit)
|
|
||||||
bitstr_t name;
|
|
||||||
int bit;
|
|
||||||
|
|
||||||
bitstr_size(nbits)
|
|
||||||
int nbits;
|
|
||||||
|
|
||||||
bit_test(name, bit)
|
|
||||||
bitstr_t name;
|
|
||||||
int bit;
|
|
||||||
.fi
|
|
||||||
.ft R
|
|
||||||
.SH DESCRIPTION
|
|
||||||
These macros operate on strings of bits.
|
|
||||||
.PP
|
|
||||||
.I Bit_alloc
|
|
||||||
returns a pointer of type
|
|
||||||
.I bitstr_t\ *
|
|
||||||
to sufficient space to store
|
|
||||||
.I nbits
|
|
||||||
bits, or NULL if no space is available.
|
|
||||||
.PP
|
|
||||||
.I Bit_decl
|
|
||||||
is a macro for allocating sufficient space to store
|
|
||||||
.I nbits
|
|
||||||
bits on the stack.
|
|
||||||
.PP
|
|
||||||
.I Bitstr_size
|
|
||||||
returns the number of elements of type
|
|
||||||
.I bitstr_t
|
|
||||||
necessary to store
|
|
||||||
.I nbits
|
|
||||||
bits.
|
|
||||||
This is useful for copying bit strings.
|
|
||||||
.PP
|
|
||||||
.I Bit_clear
|
|
||||||
and
|
|
||||||
.I bit_set
|
|
||||||
clear or set the zero-based numbered bit
|
|
||||||
.IR bit ,
|
|
||||||
in the bit string
|
|
||||||
.IR name .
|
|
||||||
.PP
|
|
||||||
.I Bit_nset
|
|
||||||
and
|
|
||||||
.I bit_nclear
|
|
||||||
set or clear the zero-based numbered bits from
|
|
||||||
.I start
|
|
||||||
to
|
|
||||||
.I stop
|
|
||||||
in the bit string
|
|
||||||
.IR name .
|
|
||||||
.PP
|
|
||||||
.I Bit_test
|
|
||||||
evaluates to zero if the zero-based numbered bit
|
|
||||||
.I bit
|
|
||||||
of bit string
|
|
||||||
.I name
|
|
||||||
is set, and non-zero otherwise.
|
|
||||||
.PP
|
|
||||||
.I Bit_ffs
|
|
||||||
sets
|
|
||||||
.I *value
|
|
||||||
to the zero-based number of the first bit set in the array of
|
|
||||||
.I nbits
|
|
||||||
bits referenced by
|
|
||||||
.IR name .
|
|
||||||
If no bits are set,
|
|
||||||
.I *value
|
|
||||||
is set to -1.
|
|
||||||
.PP
|
|
||||||
.I Bit_ffc
|
|
||||||
sets
|
|
||||||
.I *value
|
|
||||||
to the zero-based number of the first bit not set in the array of
|
|
||||||
.I nbits
|
|
||||||
bits referenced by
|
|
||||||
.IR name .
|
|
||||||
If all bits are set,
|
|
||||||
.I value
|
|
||||||
is set to -1.
|
|
||||||
.SH EXAMPLE
|
|
||||||
.nf
|
|
||||||
.in +5
|
|
||||||
#include <limits.h>
|
|
||||||
#include <bitstring.h>
|
|
||||||
|
|
||||||
...
|
|
||||||
#define LPR_BUSY_BIT 0
|
|
||||||
#define LPR_FORMAT_BIT 1
|
|
||||||
#define LPR_DOWNLOAD_BIT 2
|
|
||||||
...
|
|
||||||
#define LPR_AVAILABLE_BIT 9
|
|
||||||
#define LPR_MAX_BITS 10
|
|
||||||
|
|
||||||
make_lpr_available()
|
|
||||||
{
|
|
||||||
bitstr_t bit_decl(bitlist, LPR_MAX_BITS);
|
|
||||||
...
|
|
||||||
bit_nclear(bitlist, 0, LPR_MAX_BITS - 1);
|
|
||||||
...
|
|
||||||
if (!bit_test(bitlist, LPR_BUSY_BIT)) {
|
|
||||||
bit_clear(bitlist, LPR_FORMAT_BIT);
|
|
||||||
bit_clear(bitlist, LPR_DOWNLOAD_BIT);
|
|
||||||
bit_set(bitlist, LPR_AVAILABLE_BIT);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.fi
|
|
||||||
.SH "SEE ALSO"
|
|
||||||
malloc(3)
|
|
||||||
|
|
@ -1,213 +0,0 @@
|
||||||
.\" This manpage has been automatically generated by docbook2man
|
|
||||||
.\" from a DocBook document. This tool can be found at:
|
|
||||||
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
|
|
||||||
.\" Please send any bug reports, improvements, comments, patches,
|
|
||||||
.\" etc. to Steve Cheng <steve@ggi-project.org>.
|
|
||||||
.TH "FCRON" "8" "06 July 2014" "07/06/2014" ""
|
|
||||||
|
|
||||||
.SH NAME
|
|
||||||
fcron \- daemon to execute scheduled tasks
|
|
||||||
.SH SYNOPSIS
|
|
||||||
|
|
||||||
\fBfcron\fR [ \fB-c \fIfile\fB\fR ] [ \fB-d\fR ] [ \fB-b\fR ] [ \fB-s \fItime\fB\fR ] [ \fB-m \fInum\fB\fR ] [ \fB-q \fInum\fB\fR ]
|
|
||||||
|
|
||||||
|
|
||||||
\fBfcron\fR [ \fB-c \fIfile\fB\fR ] [ \fB-d\fR ] [ \fB-f\fR ] [ \fB-o\fR ] [ \fB-y\fR ] [ \fB-p \fIfile\fB\fR ] [ \fB-l \fItime\fB\fR ]
|
|
||||||
|
|
||||||
|
|
||||||
\fBfcron\fR [ \fB-n \fIdir\fB\fR ]
|
|
||||||
|
|
||||||
|
|
||||||
\fBfcron\fR [ \fB-h\fR ]
|
|
||||||
|
|
||||||
|
|
||||||
\fBfcron\fR [ \fB-V\fR ]
|
|
||||||
|
|
||||||
.SH "DESCRIPTION"
|
|
||||||
.PP
|
|
||||||
\fBFcron\fR should be started from \fI/etc/rc\fR or
|
|
||||||
\fI/etc/rc.local\fR\&. Unless the \fB-f\fR (or
|
|
||||||
\fB--foreground\fR) option is given, it will return immediately, so
|
|
||||||
you don't need to start it with '&'.
|
|
||||||
.PP
|
|
||||||
\fBFcron\fR loads users \fBfcrontab\fRs (see \fBfcrontab\fR(5)) files previously installed by
|
|
||||||
\fBfcrontab\fR (see \fBfcrontab\fR(1)). Then, \fBfcron\fR calculates the time
|
|
||||||
and date of each job's next execution, and determines how long it has to sleep,
|
|
||||||
and sleeps for this amount of time. When it wakes up, it checks all jobs loaded
|
|
||||||
and runs them if needed. When a job is executed, \fBfcron\fR forks, changes its user
|
|
||||||
and group permissions to match those of the user the job is being done for,
|
|
||||||
executes that job and mails the outputs to the user (this can be changed: see
|
|
||||||
\fBfcrontab\fR(5)).
|
|
||||||
.PP
|
|
||||||
Informative message about what \fBfcron\fR is doing are sent to
|
|
||||||
\fBsyslogd\fR(8) under facility \fBcron\fR,
|
|
||||||
priority \fBnotice\fR\&. Warning and error messages are sent
|
|
||||||
respectively at priority \fBwarning\fR and
|
|
||||||
\fBerror\fR\&.
|
|
||||||
.PP
|
|
||||||
.sp
|
|
||||||
.RS
|
|
||||||
.B "Note:"
|
|
||||||
\fBfcron\fR sleeps at least 20 seconds after it has been started before
|
|
||||||
executing a job to avoid to use too much resources during system boot.
|
|
||||||
.RE
|
|
||||||
.SH "OPTIONS"
|
|
||||||
.TP
|
|
||||||
\fB-f\fR
|
|
||||||
.TP
|
|
||||||
\fB--foreground\fR
|
|
||||||
Don't fork to the background. In this mode, \fBfcron\fR will
|
|
||||||
output informational message to standard error as well as to syslogd.
|
|
||||||
.TP
|
|
||||||
\fB-b\fR
|
|
||||||
.TP
|
|
||||||
\fB--background\fR
|
|
||||||
Force running in background, even if \fBfcron\fR has been
|
|
||||||
compiled to run in foreground as default.
|
|
||||||
.TP
|
|
||||||
\fB-s \fItime\fB\fR
|
|
||||||
.TP
|
|
||||||
\fB--savetime \fItime\fB\fR
|
|
||||||
Save \fBfcrontab\fRs on disk every
|
|
||||||
\fItime\fR sec (default is 1800).
|
|
||||||
.TP
|
|
||||||
\fB-m \fInum\fB\fR
|
|
||||||
.TP
|
|
||||||
\fB--maxserial \fInum\fB\fR
|
|
||||||
Set to \fInum\fR the maximum number
|
|
||||||
of serial jobs which can run simultaneously. By default,
|
|
||||||
this value is set to 1.
|
|
||||||
|
|
||||||
\fBSee also\fR: option serial in \fBfcrontab\fR(5).
|
|
||||||
.TP
|
|
||||||
\fB-q \fInum\fB\fR
|
|
||||||
.TP
|
|
||||||
\fB--queuelen \fInum\fB\fR
|
|
||||||
Set to n the number of jobs the serial queue and
|
|
||||||
the lavg queue can contain.
|
|
||||||
.TP
|
|
||||||
\fB-c \fIfile\fB\fR
|
|
||||||
.TP
|
|
||||||
\fB--configfile \fIfile\fB\fR
|
|
||||||
Make \fBfcron\fR use config file
|
|
||||||
\fIfile\fR instead of default config file
|
|
||||||
\fI/usr/local/etc/fcron.conf\fR\&. To interact with that running
|
|
||||||
\fBfcron\fR process, \fBfcrontab\fR must use the same config file (which is defined by
|
|
||||||
\fBfcrontab\fR\&'s option \fB-c\fR). That way, several \fBfcron\fR processes
|
|
||||||
can run simultaneously on an only system (but each \fBfcron\fR process *must* have a
|
|
||||||
different spool dir and pid file from the other processes).
|
|
||||||
.TP
|
|
||||||
\fB-o\fR
|
|
||||||
.TP
|
|
||||||
\fB--once\fR
|
|
||||||
Execute all jobs that need to be run at the time \fBfcron\fR
|
|
||||||
was started, wait for them, then return. Sets --sleeptime to 0.
|
|
||||||
May be especially useful when used with options \fB-y\fR and
|
|
||||||
\fB-f\fR in a script run, for instance, at dialup connection.
|
|
||||||
|
|
||||||
\fBSee also\fR: fcrontab's options volatile,
|
|
||||||
stdout\&.
|
|
||||||
.TP
|
|
||||||
\fB-y\fR
|
|
||||||
.TP
|
|
||||||
\fB--nosyslog\fR
|
|
||||||
Don't log to syslog at all. May be useful when running
|
|
||||||
in foreground.
|
|
||||||
.TP
|
|
||||||
\fB-p \fIfile\fB\fR
|
|
||||||
.TP
|
|
||||||
\fB--logfilepath \fIfile\fB\fR
|
|
||||||
If set, log to the file given as argument. \fBfcron\fR will
|
|
||||||
log to both that file and syslog in parallel unless
|
|
||||||
\fB-y\fR is also set.
|
|
||||||
.TP
|
|
||||||
\fB-l \fItime\fB\fR
|
|
||||||
.TP
|
|
||||||
\fB--firstsleep \fItime\fB\fR
|
|
||||||
Sets the initial delay (in seconds) before any job is
|
|
||||||
executed, default to 20 seconds.
|
|
||||||
.TP
|
|
||||||
\fB-n \fIdir\fB\fR
|
|
||||||
.TP
|
|
||||||
\fB--newspooldir \fIdir\fB\fR
|
|
||||||
Create \fIdir\fR as a new spool
|
|
||||||
directory for \fBfcron\fR\&. Set correctly its mode and owner. Then, exit.
|
|
||||||
.TP
|
|
||||||
\fB-h\fR
|
|
||||||
.TP
|
|
||||||
\fB--help\fR
|
|
||||||
Display a brief description of the options.
|
|
||||||
.TP
|
|
||||||
\fB-V\fR
|
|
||||||
.TP
|
|
||||||
\fB--version\fR
|
|
||||||
Display an informational message about \fBfcron\fR,
|
|
||||||
including its version and the license under which it is distributed.
|
|
||||||
.TP
|
|
||||||
\fB-d\fR
|
|
||||||
.TP
|
|
||||||
\fB--debug\fR
|
|
||||||
Run in debug mode (more details on stderr -- if option
|
|
||||||
\fB-f\fR is set -- and in log file)
|
|
||||||
.SH "RETURN VALUES"
|
|
||||||
.PP
|
|
||||||
\fBFcron\fR returns 0 on normal exit, and 1 on
|
|
||||||
error.
|
|
||||||
.SH "SIGNALS"
|
|
||||||
.TP
|
|
||||||
\fBSIGTERM\fR
|
|
||||||
Save configuration (time remaining until next
|
|
||||||
execution, time and date of next execution, etc), wait for all running jobs and
|
|
||||||
exit.
|
|
||||||
.TP
|
|
||||||
\fBSIGUSR1\fR
|
|
||||||
Force \fBfcron\fR to reload its configuration.
|
|
||||||
.TP
|
|
||||||
\fBSIGUSR2\fR
|
|
||||||
Make \fBfcron\fR print its current schedule on syslog. It
|
|
||||||
also toggles on/off the printing on debug info on syslog.
|
|
||||||
.TP
|
|
||||||
\fBSIGHUP\fR
|
|
||||||
Tell \fBfcron\fR to check if there is any configuration
|
|
||||||
update (this signal is used by \fBfcrontab\fR(5))
|
|
||||||
.SH "CONFORMING TO"
|
|
||||||
.PP
|
|
||||||
Should be POSIX compliant.
|
|
||||||
.SH "FILES"
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/fcron.conf\fB\fR
|
|
||||||
Configuration file for \fBfcron\fR, \fBfcrontab\fR and
|
|
||||||
\fBfcrondyn\fR: contains paths (spool dir, pid file) and default programs to use
|
|
||||||
(editor, shell, etc). See \fBfcron.conf\fR(5)
|
|
||||||
for more details.
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/fcron.allow\fB\fR
|
|
||||||
Users allowed to use \fBfcrontab\fR and \fBfcrondyn\fR (one
|
|
||||||
name per line, special name "all" acts for everyone)
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/fcron.deny\fB\fR
|
|
||||||
Users who are not allowed to use \fBfcrontab\fR and
|
|
||||||
\fBfcrondyn\fR (same format as allow file)
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/pam.d/fcron\fB (or \fI/usr/local/etc/pam.conf\fB)\fR
|
|
||||||
PAM configuration file for
|
|
||||||
\fBfcron\fR\&. Take a look at \fBpam\fR(8) for more details.
|
|
||||||
.SH "SEE ALSO"
|
|
||||||
|
|
||||||
\fBfcrontab\fR(1),
|
|
||||||
|
|
||||||
\fBfcrondyn\fR(1),
|
|
||||||
|
|
||||||
\fBfcrontab\fR(5),
|
|
||||||
|
|
||||||
\fBfcron.conf\fR(5),
|
|
||||||
|
|
||||||
\fBfcron\fR(8).
|
|
||||||
|
|
||||||
If you're learning how to use fcron from scratch, I suggest
|
|
||||||
that you read the HTML version of the documentation (if your are not reading it
|
|
||||||
right now! :) ): the content is the same, but it is easier to navigate thanks
|
|
||||||
to the hyperlinks.
|
|
||||||
.SH "AUTHOR"
|
|
||||||
.PP
|
|
||||||
Thibault Godouet <fcron@free.fr>
|
|
||||||
|
|
@ -1,104 +0,0 @@
|
||||||
.\" This manpage has been automatically generated by docbook2man
|
|
||||||
.\" from a DocBook document. This tool can be found at:
|
|
||||||
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
|
|
||||||
.\" Please send any bug reports, improvements, comments, patches,
|
|
||||||
.\" etc. to Steve Cheng <steve@ggi-project.org>.
|
|
||||||
.TH "FCRON.CONF" "5" "06 July 2014" "07/06/2014" ""
|
|
||||||
|
|
||||||
.SH NAME
|
|
||||||
fcron.conf \- configuration file for fcron and fcrontab
|
|
||||||
.SH "DESCRIPTION"
|
|
||||||
.SS "ABSTRACT"
|
|
||||||
.PP
|
|
||||||
This page describes the syntax used for the configuration file
|
|
||||||
of \fBfcrontab\fR(1), \fBfcrondyn\fR(1) and \fBfcron\fR(8).
|
|
||||||
.PP
|
|
||||||
Blank lines, line beginning by a hash sign (#) (which are
|
|
||||||
considered comments), leading blanks and tabs are ignored. Each line in a
|
|
||||||
\fBfcron.conf\fR file is of the form
|
|
||||||
.sp
|
|
||||||
.RS
|
|
||||||
.PP
|
|
||||||
name = value
|
|
||||||
.RE
|
|
||||||
where the blanks around equal-sign (=) are ignored and
|
|
||||||
optional. Trailing blanks are also ignored.
|
|
||||||
.PP
|
|
||||||
The following names are recognized (default value in parentheses):
|
|
||||||
"VALID VARIABLES IN A FCRON.CONF FILE"
|
|
||||||
.TP
|
|
||||||
\fBfcrontabs=\fIdirectory\fB (\fI/usr/local/var/spool/fcron\fB)\fR
|
|
||||||
\fBFcron\fR spool directory.
|
|
||||||
.TP
|
|
||||||
\fBpidfile=\fIfile-path\fB (\fI/usr/local/var/run/fcron.pid\fB)\fR
|
|
||||||
Location of \fBfcron\fR pid file (needed by \fBfcrontab\fR
|
|
||||||
to work properly).
|
|
||||||
.TP
|
|
||||||
\fBfifofile=\fIfile-path\fB (\fI/usr/local/var/run/fcron.fifo\fB)\fR
|
|
||||||
Location of \fBfcron\fR fifo file (needed by
|
|
||||||
\fBfcrondyn\fR to communicate with \fBfcron\fR).
|
|
||||||
.TP
|
|
||||||
\fBfcronallow=\fIfile-path\fB (\fI/usr/local/etc/fcron.allow\fB)\fR
|
|
||||||
Location of fcron.allow file.
|
|
||||||
.TP
|
|
||||||
\fBfcrondeny=\fIfile-path\fB (\fI/usr/local/etc/fcron.deny\fB)\fR
|
|
||||||
Location of fcron.deny file.
|
|
||||||
.TP
|
|
||||||
\fBshell=\fIfile-path\fB (\fI/bin/sh\fB)\fR
|
|
||||||
Location of default shell called by \fBfcron\fR when
|
|
||||||
running a job. When \fBfcron\fR runs a job, \fBfcron\fR uses the value of \fBSHELL\fR from the fcrontab if any, otherwise it uses the value from \fIfcron.conf\fR if any, or in last resort the value from \fI/etc/passwd\fR\&.
|
|
||||||
.TP
|
|
||||||
\fBsendmail=\fIfile-path\fB (\fI/usr/sbin/sendmail\fB)\fR
|
|
||||||
Location of mailer program called by \fBfcron\fR to
|
|
||||||
send job output.
|
|
||||||
.TP
|
|
||||||
\fBeditor=\fIfile-path\fB (\fI/usr/bin/vi\fB)\fR
|
|
||||||
Location of default editor used when invoking
|
|
||||||
"fcrontab -e".
|
|
||||||
File-paths and directories are complete and absolute
|
|
||||||
(i.e. beginning by a "/").
|
|
||||||
.PP
|
|
||||||
To run several instances of \fBfcron\fR simultaneously on the same
|
|
||||||
system, you must use a different configuration file for each instance. Each
|
|
||||||
instance must have a different fcrontabs,
|
|
||||||
pidfile and fifofile\&. Then, use \fBfcron\fR(8)'s command line option
|
|
||||||
\fI-c\fR to select which config file (so which instance) you
|
|
||||||
refer to.
|
|
||||||
.SH "FILES"
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/fcron.conf\fB\fR
|
|
||||||
Configuration file for \fBfcron\fR, \fBfcrontab\fR and
|
|
||||||
\fBfcrondyn\fR: contains paths (spool dir, pid file) and default programs to use
|
|
||||||
(editor, shell, etc). See \fBfcron.conf\fR(5) for
|
|
||||||
more details.
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/fcron.allow\fB\fR
|
|
||||||
Users allowed to use \fBfcrontab\fR and \fBfcrondyn\fR (one
|
|
||||||
name per line, special name "all" acts for everyone)
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/fcron.deny\fB\fR
|
|
||||||
Users who are not allowed to use \fBfcrontab\fR and
|
|
||||||
\fBfcrondyn\fR (same format as allow file)
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/pam.d/fcron\fB (or \fI/usr/local/etc/pam.conf\fB)\fR
|
|
||||||
PAM configuration file for
|
|
||||||
\fBfcron\fR\&. Take a look at \fBpam\fR(8) for more details.
|
|
||||||
.SH "SEE ALSO"
|
|
||||||
|
|
||||||
\fBfcrontab\fR(1),
|
|
||||||
|
|
||||||
\fBfcrondyn\fR(1),
|
|
||||||
|
|
||||||
\fBfcrontab\fR(5),
|
|
||||||
|
|
||||||
\fBfcron.conf\fR(5),
|
|
||||||
|
|
||||||
\fBfcron\fR(8).
|
|
||||||
|
|
||||||
If you're learning how to use fcron from scratch, I suggest
|
|
||||||
that you read the HTML version of the documentation (if your are not reading it
|
|
||||||
right now! :) ): the content is the same, but it is easier to navigate thanks
|
|
||||||
to the hyperlinks.
|
|
||||||
.SH "AUTHOR"
|
|
||||||
.PP
|
|
||||||
Thibault Godouet <fcron@free.fr>
|
|
||||||
|
|
@ -1,219 +0,0 @@
|
||||||
.\" This manpage has been automatically generated by docbook2man
|
|
||||||
.\" from a DocBook document. This tool can be found at:
|
|
||||||
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
|
|
||||||
.\" Please send any bug reports, improvements, comments, patches,
|
|
||||||
.\" etc. to Steve Cheng <steve@ggi-project.org>.
|
|
||||||
.TH "FCRONDYN" "1" "06 July 2014" "07/06/2014" ""
|
|
||||||
|
|
||||||
.SH NAME
|
|
||||||
fcrondyn \- dialog dyn-amically with a running fcron daemon
|
|
||||||
.SH SYNOPSIS
|
|
||||||
|
|
||||||
\fBfcrondyn\fR [ \fB-c \fIfile\fB\fR ] [ \fB-i\fR ]
|
|
||||||
|
|
||||||
|
|
||||||
\fBfcrondyn\fR [ \fB-c \fIfile\fB\fR ] \fB-x \fIcommand\fB\fR
|
|
||||||
|
|
||||||
|
|
||||||
\fBfcrondyn\fR [ \fB-h\fR ]
|
|
||||||
|
|
||||||
.SH "DESCRIPTION"
|
|
||||||
.PP
|
|
||||||
\fBFcrondyn\fR is a user tool intended to interact with a running
|
|
||||||
fcron daemon. It can, for instance, list user's jobs loaded by fcron, run one of
|
|
||||||
them, renice a running job, send a signal to a running job, etc.
|
|
||||||
.SH "OPTIONS"
|
|
||||||
.TP
|
|
||||||
\fB-i\fR
|
|
||||||
Run \fBfcrondyn\fR in interactive mode. \fBfcrondyn\fR is also
|
|
||||||
run in interactive mode when no option is given.
|
|
||||||
.TP
|
|
||||||
\fB-x \fIcommand\fB\fR
|
|
||||||
Run \fIcommand\fR and returns
|
|
||||||
immediately. See below for syntax
|
|
||||||
and a list of commands.
|
|
||||||
.TP
|
|
||||||
\fB-c \fIfile\fB\fR
|
|
||||||
Make \fBfcrondyn\fR use config file
|
|
||||||
\fIfile\fR instead of default config file
|
|
||||||
\fI/usr/local/etc/fcron.conf\fR\&. To interact with a running
|
|
||||||
\fBfcron\fR process, \fBfcrondyn\fR must use the same config file as the process. That
|
|
||||||
way, several \fBfcron\fR processes can run simultaneously on an only system.
|
|
||||||
.TP
|
|
||||||
\fB-d\fR
|
|
||||||
Run in debug mode. In this mode, many informational
|
|
||||||
messages will be output in order to check if anything went wrong.
|
|
||||||
.TP
|
|
||||||
\fB-h\fR
|
|
||||||
Display a brief description of the options.
|
|
||||||
.TP
|
|
||||||
\fB-V\fR
|
|
||||||
Display an informational message about \fBfcrondyn\fR,
|
|
||||||
including its version and the license under which it is distributed.
|
|
||||||
.SH "COMMAND DESCRIPTION"
|
|
||||||
.PP
|
|
||||||
\fBFcrondyn\fR\&'s command syntax is the following:
|
|
||||||
.sp
|
|
||||||
.RS
|
|
||||||
.PP
|
|
||||||
\fBcommand\fR \fIarg1\fR
|
|
||||||
\fIarg2\fR [...]
|
|
||||||
.RE
|
|
||||||
.PP
|
|
||||||
An argument of a \fBfcrondyn\fR command is of one of the following
|
|
||||||
type:
|
|
||||||
"ARGUMENT TYPES OF FCRONDYN'S COMMANDS"
|
|
||||||
.TP
|
|
||||||
\fBuser\fR
|
|
||||||
A valid user name.
|
|
||||||
.TP
|
|
||||||
\fBjobid\fR
|
|
||||||
A job id given by one of \fBfcrondyn\fR\&'s
|
|
||||||
\fBls*\fR commands (i.e. an integer).
|
|
||||||
.TP
|
|
||||||
\fBsig\fR
|
|
||||||
A signal number, or its name (case does not matter).
|
|
||||||
For instance, "term" or "15".
|
|
||||||
.TP
|
|
||||||
\fBniceval\fR
|
|
||||||
A job priority value. A
|
|
||||||
\fBniceval\fR is an integer from -20 (highest
|
|
||||||
priority) to 19 (lowest) (only root is allowed to use a negative value with this
|
|
||||||
option).
|
|
||||||
.PP
|
|
||||||
Last, but not least, the following commands are recognized
|
|
||||||
(optional arguments are between []):
|
|
||||||
"VALID FCRONDYN'S COMMANDS"
|
|
||||||
.TP
|
|
||||||
\fBhelp\fR
|
|
||||||
.TP
|
|
||||||
\fBh\fR
|
|
||||||
Print an help message about fcrondyn's
|
|
||||||
commands.
|
|
||||||
.TP
|
|
||||||
\fBquit\fR
|
|
||||||
.TP
|
|
||||||
\fBq\fR
|
|
||||||
In interactive mode, quit fcrondyn.
|
|
||||||
.TP
|
|
||||||
\fBls [user]\fR
|
|
||||||
List all jobs of user. When \fBls\fR is
|
|
||||||
run by root, all users are listed unless a user name is given as argument. See below for some explanations about the
|
|
||||||
fields used by \fBls*\fR commands.
|
|
||||||
.TP
|
|
||||||
\fBls_lavgq [user]\fR
|
|
||||||
Same as \fBls\fR, but list only the jobs
|
|
||||||
which are in the load-average queue (i.e. which are waiting for a lower load
|
|
||||||
average to be run).
|
|
||||||
.TP
|
|
||||||
\fBls_serialq [user]\fR
|
|
||||||
Same as \fBls\fR, but list only the jobs
|
|
||||||
which are in the serial queue (i.e. which are waiting for
|
|
||||||
other jobs to be finished).
|
|
||||||
.TP
|
|
||||||
\fBls_exeq [user]\fR
|
|
||||||
Same as \fBls\fR, but list only the jobs
|
|
||||||
which are running.
|
|
||||||
.TP
|
|
||||||
\fBdetail jobid\fR
|
|
||||||
Print details about a
|
|
||||||
job. \fBjobid\fR is the one given by
|
|
||||||
\fBls\fR\&.
|
|
||||||
.TP
|
|
||||||
\fBrunnow jobid\fR
|
|
||||||
Instead of waiting for the next scheduled execution
|
|
||||||
time, run the job now. The next execution time is changed as
|
|
||||||
if the job had run on schedule.
|
|
||||||
.TP
|
|
||||||
\fBrun jobid\fR
|
|
||||||
Run the job now. Its next execution time is not changed.
|
|
||||||
.TP
|
|
||||||
\fBkill sig jobid\fR
|
|
||||||
Send a signal to a running job.
|
|
||||||
.TP
|
|
||||||
\fBrenice niceval jobid\fR
|
|
||||||
Change the priority of a running job.
|
|
||||||
"FIELDS USED BY DETAIL AND LS* COMMANDS"
|
|
||||||
.TP
|
|
||||||
\fBID\fR
|
|
||||||
Job's unique identification number.
|
|
||||||
.TP
|
|
||||||
\fBUSER\fR
|
|
||||||
User who owns this job.
|
|
||||||
.TP
|
|
||||||
\fBPID\fR
|
|
||||||
The pid of the running job.
|
|
||||||
.TP
|
|
||||||
\fBINDEX\fR
|
|
||||||
Index of the job in the serial queue (i.e. it will be run when all the jobs of an inferior index have been run)
|
|
||||||
.TP
|
|
||||||
\fBR&Q\fR
|
|
||||||
The job has this number instances of the given task which are either running or queued in the serial or lavg queue.
|
|
||||||
.TP
|
|
||||||
\fBOPTIONS\fR
|
|
||||||
List of main options which are set for the task.
|
|
||||||
L for the jobs which run only under a given system Load average (option lavg, lavg1, lavg5 and lavg15), LO (Load average Once) if only at most one instance of the task can be in the load average queue at a given time (option lavgonce), S for serialized jobs (option serial), SO for the jobs which will be serialized only for the next execution (Serial Once), and ES if several instances of the same job can run simultaneously (option exesev).
|
|
||||||
.TP
|
|
||||||
\fBLAVG\fR
|
|
||||||
3 values, corresponding to the 1, 5, and 15-minute (in
|
|
||||||
this order) system load average values below which the job
|
|
||||||
will be run, otherwise it will be queued until the system
|
|
||||||
load average is appropriate (see lavg option).
|
|
||||||
.TP
|
|
||||||
\fBUNTIL\fR
|
|
||||||
Field corresponding to the until option.
|
|
||||||
.TP
|
|
||||||
\fBSTRICT\fR
|
|
||||||
Field corresponding to the strict option. Y for
|
|
||||||
yes, N for no.
|
|
||||||
.TP
|
|
||||||
\fBSCHEDULE\fR
|
|
||||||
Next run is scheduled at this time and date. Please note that fcrondyn prints the next execution time and date in the time zone of the system where fcron is running, and not the time zone which can be defined for using option timezone\&.
|
|
||||||
.TP
|
|
||||||
\fBCMD\fR
|
|
||||||
The command that will be executed.
|
|
||||||
.SH "RETURN VALUES"
|
|
||||||
.PP
|
|
||||||
\fBFcrondyn\fR returns 0 on normal exit and 1 on
|
|
||||||
error.
|
|
||||||
.SH "CONFORMING TO"
|
|
||||||
.PP
|
|
||||||
Should be POSIX compliant.
|
|
||||||
.SH "FILES"
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/fcron.conf\fB\fR
|
|
||||||
Configuration file for \fBfcron\fR, \fBfcrontab\fR and
|
|
||||||
\fBfcrondyn\fR: contains paths (spool dir, pid file) and default programs to use
|
|
||||||
(editor, shell, etc). See \fBfcron.conf\fR(5)
|
|
||||||
for more details.
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/fcron.allow\fB\fR
|
|
||||||
Users allowed to use \fBfcrontab\fR and \fBfcrondyn\fR (one
|
|
||||||
name per line, special name "all" acts for everyone)
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/fcron.deny\fB\fR
|
|
||||||
Users who are not allowed to use \fBfcrontab\fR and
|
|
||||||
\fBfcrondyn\fR (same format as allow file)
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/pam.d/fcron\fB (or \fI/usr/local/etc/pam.conf\fB)\fR
|
|
||||||
PAM configuration file for
|
|
||||||
\fBfcron\fR\&. Take a look at pam(8) for more details.
|
|
||||||
.SH "SEE ALSO"
|
|
||||||
|
|
||||||
\fBfcrontab\fR(1),
|
|
||||||
|
|
||||||
\fBfcrondyn\fR(1),
|
|
||||||
|
|
||||||
\fBfcrontab\fR(5),
|
|
||||||
|
|
||||||
\fBfcron.conf\fR(5),
|
|
||||||
|
|
||||||
\fBfcron\fR(8).
|
|
||||||
|
|
||||||
If you're learning how to use fcron from scratch, I suggest
|
|
||||||
that you read the HTML version of the documentation (if your are not reading it
|
|
||||||
right now! :) ): the content is the same, but it is easier to navigate thanks
|
|
||||||
to the hyperlinks.
|
|
||||||
.SH "AUTHOR"
|
|
||||||
.PP
|
|
||||||
Thibault Godouet <fcron@free.fr>
|
|
||||||
|
|
@ -1,178 +0,0 @@
|
||||||
.\" This manpage has been automatically generated by docbook2man
|
|
||||||
.\" from a DocBook document. This tool can be found at:
|
|
||||||
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
|
|
||||||
.\" Please send any bug reports, improvements, comments, patches,
|
|
||||||
.\" etc. to Steve Cheng <steve@ggi-project.org>.
|
|
||||||
.TH "FCRONTAB" "1" "06 July 2014" "07/06/2014" ""
|
|
||||||
|
|
||||||
.SH NAME
|
|
||||||
fcrontab \- manipulate per-user fcrontab files
|
|
||||||
.SH SYNOPSIS
|
|
||||||
|
|
||||||
\fBfcrontab\fR [ \fB-c
|
|
||||||
\fIfile\fB\fR ] [ \fB-n\fR ] \fB\fIfile\fB\fR [ \fB\fIuser\fB\fR | \fB-u
|
|
||||||
\fIuser\fB\fR ]
|
|
||||||
|
|
||||||
|
|
||||||
\fBfcrontab\fR [ \fB-c
|
|
||||||
\fIfile\fB\fR ] [ \fB-n\fR ] { \fB-l\fR | \fB-r\fR | \fB-e\fR | \fB-z\fR } [ \fB\fIuser\fB\fR | \fB-u
|
|
||||||
\fIuser\fB\fR ]
|
|
||||||
|
|
||||||
|
|
||||||
\fBfcrontab\fR [ \fB-h\fR ]
|
|
||||||
|
|
||||||
.SH "DESCRIPTION"
|
|
||||||
.PP
|
|
||||||
\fBFcrontab\fR is the program intended to
|
|
||||||
install, edit, list and remove the tables used by \fBfcron\fR(8) daemon. As \fBfcron\fR internally
|
|
||||||
uses a non-human readable format (this is needed because \fBfcron\fR
|
|
||||||
saves more informations than the user gives, for example the time
|
|
||||||
and date of next execution), the user cannot edit directly his
|
|
||||||
\fBfcrontab\fR (the one used by \fBfcron\fR).
|
|
||||||
.PP
|
|
||||||
When a user
|
|
||||||
installs a \fBfcrontab\fR, the source file is saved in the spool
|
|
||||||
directory (\fI/usr/local/var/spool/fcron\fR) to allow future
|
|
||||||
editions, and a formatted file is generated for the \fBfcron\fR daemon,
|
|
||||||
which is signaled once about ten seconds before the next minute for
|
|
||||||
all changes made previously. The daemon is not informed of the changes
|
|
||||||
immediately but at most once a minute
|
|
||||||
to keep ill disposed users from blocking the daemon by installing
|
|
||||||
\fBfcrontab\fRs over and over (ie. denial of service attack). We will call
|
|
||||||
"\fBfcrontab\fR" the source file of the \fBfcrontab\fR
|
|
||||||
in the following.
|
|
||||||
.PP
|
|
||||||
A user can install a \fBfcrontab\fR if
|
|
||||||
he is listed in the \fI/usr/local/etc/fcron.allow\fR and not
|
|
||||||
(unless by the keyword all) listed in
|
|
||||||
\fI/usr/local/etc/fcron.deny\fR (see section "files" below). If neither
|
|
||||||
\fIfcron.allow\fR nor \fIfcron.deny\fR
|
|
||||||
exist, all users are allowed. None of these files have to exist, but
|
|
||||||
if they do, the deny file takes precedence.
|
|
||||||
.PP
|
|
||||||
The first
|
|
||||||
form of the command is used to install a new \fBfcrontab\fR file, from
|
|
||||||
any named file or from standard input if the pseudo-filename "-" is
|
|
||||||
given, replacing the previous one (if any): each user can have only
|
|
||||||
one \fBfcrontab\fR\&.
|
|
||||||
.PP
|
|
||||||
For instance, root can create a
|
|
||||||
systemwide fcrontab file, say \fI/etc/fcrontab\fR,
|
|
||||||
and run "\fBfcrontab\fR
|
|
||||||
\fI/etc/fcrontab\fR" to install the new version after
|
|
||||||
each change of the file. Or (s)he can create a new fcrontab running
|
|
||||||
a simple "\fBfcrontab\fR", and then maintain it using
|
|
||||||
"\fBfcrontab\fR \fB-e\fR". Same
|
|
||||||
considerations apply to a non privileged user.
|
|
||||||
.SH "OPTIONS"
|
|
||||||
.TP
|
|
||||||
\fB-u \fIuser\fB\fR
|
|
||||||
Specify the user whose \fBfcrontab\fR will be managed, or
|
|
||||||
"systab" for the system fcrontab. Should only be
|
|
||||||
used by root. If not given, the \fBfcrontab\fR file of the
|
|
||||||
user invoking \fBfcrontab\fR will be handled. It may be useful
|
|
||||||
since the \fBsu\fR(8) command may
|
|
||||||
confuse \fBfcrontab\fR\&.
|
|
||||||
.sp
|
|
||||||
.RS
|
|
||||||
.B "Note:"
|
|
||||||
the
|
|
||||||
\&'\fIuser\fR\&' in the synopsys is equivalent
|
|
||||||
to a '\fB-u\fR
|
|
||||||
\fIuser\fR\&'.
|
|
||||||
.RE
|
|
||||||
.TP
|
|
||||||
\fB-l\fR
|
|
||||||
List user's current \fBfcrontab\fR to standard
|
|
||||||
output.
|
|
||||||
.TP
|
|
||||||
\fB-e\fR
|
|
||||||
Edit user's current \fBfcrontab\fR using either the editor
|
|
||||||
specified by the environment variable
|
|
||||||
\fBVISUAL\fR, or \fBEDITOR\fR if
|
|
||||||
\fBVISUAL\fR is not set. If none or them are set,
|
|
||||||
\fB/usr/bin/vi\fR will be used.
|
|
||||||
.TP
|
|
||||||
\fB-r\fR
|
|
||||||
Remove user's \fBfcrontab\fR\&.
|
|
||||||
.TP
|
|
||||||
\fB-z\fR
|
|
||||||
Reinstall user's \fBfcrontab\fR from its source code. All
|
|
||||||
informations \fBfcron\fR may have kept in the binary
|
|
||||||
\fBfcrontab\fR (such as the last execution time and date) will
|
|
||||||
be forgotten (ie. lost).
|
|
||||||
.TP
|
|
||||||
\fB-n\fR
|
|
||||||
Ignore previous version. If this option is not given,
|
|
||||||
\fBfcron\fR will try to keep as much information as possible
|
|
||||||
between old and new version of the \fBfcrontab\fR (time and
|
|
||||||
date of next execution, if job is in serial queue, etc) if
|
|
||||||
the line hasn't been modified (same fields, same shell
|
|
||||||
command).
|
|
||||||
.TP
|
|
||||||
\fB-c \fIfile\fB\fR
|
|
||||||
Make \fBfcrontab\fR use config file
|
|
||||||
\fIfile\fR instead of default config
|
|
||||||
file \fI/usr/local/etc/fcron.conf\fR\&. To
|
|
||||||
interact with a running \fBfcron\fR process, \fBfcrontab\fR must
|
|
||||||
use the same config file as the process. That way, several
|
|
||||||
\fBfcron\fR processes can run simultaneously on an only
|
|
||||||
system.
|
|
||||||
.TP
|
|
||||||
\fB-d\fR
|
|
||||||
Run in debug mode. In this mode, many informational
|
|
||||||
messages will be output in order to check if anything went
|
|
||||||
wrong.
|
|
||||||
.TP
|
|
||||||
\fB-h\fR
|
|
||||||
Display a brief description of the options.
|
|
||||||
.TP
|
|
||||||
\fB-V\fR
|
|
||||||
Display an informational message about \fBfcrontab\fR,
|
|
||||||
including its version and the license under which it is
|
|
||||||
distributed.
|
|
||||||
.SH "RETURN VALUES"
|
|
||||||
.PP
|
|
||||||
\fBFcrontab\fR returns 0 on
|
|
||||||
normal exit and 1 on error.
|
|
||||||
.SH "CONFORMING TO"
|
|
||||||
.PP
|
|
||||||
Should be POSIX compliant.
|
|
||||||
.SH "FILES"
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/fcron.conf\fB\fR
|
|
||||||
Configuration file for \fBfcron\fR, \fBfcrontab\fR and
|
|
||||||
\fBfcrondyn\fR: contains paths (spool dir, pid file) and
|
|
||||||
default programs to use (editor, shell, etc). See \fBfcron.conf\fR(5) for more
|
|
||||||
details.
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/fcron.allow\fB\fR
|
|
||||||
Users allowed to use \fBfcrontab\fR and \fBfcrondyn\fR (one name
|
|
||||||
per line, special name "all" acts for everyone)
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/fcron.deny\fB\fR
|
|
||||||
Users who are not allowed to use \fBfcrontab\fR and
|
|
||||||
\fBfcrondyn\fR (same format as allow file)
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/pam.d/fcron\fB (or \fI/usr/local/etc/pam.conf\fB)\fR
|
|
||||||
PAM configuration file for
|
|
||||||
\fBfcron\fR\&. Take a look at pam(8) for more details.
|
|
||||||
.SH "SEE ALSO"
|
|
||||||
|
|
||||||
\fBfcrontab\fR(1),
|
|
||||||
|
|
||||||
\fBfcrondyn\fR(1),
|
|
||||||
|
|
||||||
\fBfcrontab\fR(5),
|
|
||||||
|
|
||||||
\fBfcron.conf\fR(5),
|
|
||||||
|
|
||||||
\fBfcron\fR(8).
|
|
||||||
|
|
||||||
If you're learning how to use fcron from scratch, I suggest
|
|
||||||
that you read the HTML version of the documentation (if your are not reading it
|
|
||||||
right now! :) ): the content is the same, but it is easier to navigate thanks
|
|
||||||
to the hyperlinks.
|
|
||||||
.SH "AUTHOR"
|
|
||||||
.PP
|
|
||||||
Thibault Godouet <fcron@free.fr>
|
|
||||||
|
|
@ -1,863 +0,0 @@
|
||||||
.\" This manpage has been automatically generated by docbook2man
|
|
||||||
.\" from a DocBook document. This tool can be found at:
|
|
||||||
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
|
|
||||||
.\" Please send any bug reports, improvements, comments, patches,
|
|
||||||
.\" etc. to Steve Cheng <steve@ggi-project.org>.
|
|
||||||
.TH "FCRONTAB" "5" "06 July 2014" "07/06/2014" ""
|
|
||||||
|
|
||||||
.SH NAME
|
|
||||||
fcrontab \- tables for driving fcron
|
|
||||||
.SH "DESCRIPTION"
|
|
||||||
.PP
|
|
||||||
A \fBfcrontab\fR is a file containing all tables used by the
|
|
||||||
\fBfcron\fR(8) daemon. In other words, it is the means for a user to tell the daemon
|
|
||||||
"execute this command at this moment". Each user has his own \fBfcrontab\fR, whose
|
|
||||||
commands are executed as his owner (only root can run a job as another using the
|
|
||||||
option runas (see below)).
|
|
||||||
.PP
|
|
||||||
Blank lines, line beginning by a hash sign (#) (which are
|
|
||||||
considered comments), leading blanks and tabs are ignored. Each line in a
|
|
||||||
fcrontab file can be either
|
|
||||||
.TP 0.2i
|
|
||||||
\(bu
|
|
||||||
an environment setting,
|
|
||||||
.TP 0.2i
|
|
||||||
\(bu
|
|
||||||
an option setting,
|
|
||||||
.TP 0.2i
|
|
||||||
\(bu
|
|
||||||
entries based on elapsed system up time,
|
|
||||||
.TP 0.2i
|
|
||||||
\(bu
|
|
||||||
entries based on absolute time (like normal crontab
|
|
||||||
entries), or
|
|
||||||
.TP 0.2i
|
|
||||||
\(bu
|
|
||||||
entries run periodically.
|
|
||||||
.PP
|
|
||||||
Any logical line (an entry or an assignment) can be divided into
|
|
||||||
several real lines (the lines which end by a newline character) by placing a
|
|
||||||
backslash (\\) before the newline character (\\n).
|
|
||||||
.SS "THE ENVIRONMENT SETTINGS"
|
|
||||||
.PP
|
|
||||||
The environment settings are of the form
|
|
||||||
.sp
|
|
||||||
.RS
|
|
||||||
.PP
|
|
||||||
name = value
|
|
||||||
.RE
|
|
||||||
.PP
|
|
||||||
where the blanks around equal-sign (=) are ignored and
|
|
||||||
optional. Trailing blanks are also ignored, but you can place the value in
|
|
||||||
quotes (simple or double, but matching) to preserve any blanks in the
|
|
||||||
value.
|
|
||||||
.PP
|
|
||||||
When \fBfcron\fR executes a command, it always sets
|
|
||||||
\fBUSER\fR, and \fBHOME\fR as defined in
|
|
||||||
\fI/etc/passwd\fR for the owner of the \fBfcrontab\fR from which the
|
|
||||||
command is extracted. TZ is also defined to the value of the option timezone when this option is used. It also defines \fBSHELL\fR to the value of the SHELL used to run the command. \fBFcron\fR uses the value of \fBSHELL\fR from the fcrontab if any, otherwise it uses the value from \fIfcron.conf\fR if any, or in last resort the value from \fI/etc/passwd\fR\&. \fBHOME\fR and \fBSHELL\fR may be
|
|
||||||
overridden by settings in the \fBfcrontab\fR, but \fBUSER\fR may not.
|
|
||||||
Every other environment assignments defined in the user \fBfcrontab\fR are then
|
|
||||||
made, and the command is executed.
|
|
||||||
.PP
|
|
||||||
By default, fcron will send emails using the email "Content-Type:" header of "text/plain" with the "charset=" parameter set to the charmap / codeset of the locale in which \fBfcron\fR(8) is started up - i.e. either the default system locale, if no LC_* environment variables are set, or the locale specified by the LC_* environment variables (see locale(7)). You can use different character encodings for emailed fcron job output by setting the CONTENT_TYPE and CONTENT_TRANSFER_ENCODING variables in fcrontabs, to the correct values of the mail headers of those names.
|
|
||||||
.PP
|
|
||||||
Plus, the special variable MAILTO allows
|
|
||||||
you to tell \fBfcron\fR to whom it has to mail the command's output. Note that
|
|
||||||
MAILTO is in fact equivalent to a global declaration of the
|
|
||||||
option mailto (see below). It is only used for backward compatibility, so
|
|
||||||
you should use the option mailto directly.
|
|
||||||
.SS "ENTRIES BASED ON ELAPSED SYSTEM UP TIME"
|
|
||||||
.PP
|
|
||||||
The entries of commands which have to be run once every m
|
|
||||||
minutes of \fBfcron\fR\&'s execution (which is normally the same as m minutes of
|
|
||||||
system's execution) are of the form
|
|
||||||
|
|
||||||
.nf
|
|
||||||
@options frequency command
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
where frequency is a time value of the form
|
|
||||||
value*multiplier+value*multiplier+...+value-in-minutes as "12h02" or "3w2d5h1".
|
|
||||||
The first means "12 hours and 2 minutes of fcron execution" while the second
|
|
||||||
means "3 weeks, 2 days, 5 hours and 1 minute of fcron execution". The only valid
|
|
||||||
multipliers are:
|
|
||||||
"VALID TIME MULTIPLIERS"
|
|
||||||
meaning: multipliers: months (4 weeks): m weeks (7 days): w days (24 hours): d hours (60 minutes): h seconds: s
|
|
||||||
.PP
|
|
||||||
In place of \fIoptions\fR, user can put a
|
|
||||||
time value: it will be interpreted as
|
|
||||||
@first(\fI<time>\fR)\&. If first option is
|
|
||||||
not set, the value of "frequency" is used.
|
|
||||||
.PP
|
|
||||||
This kind of entry does not guarantee a time and date of
|
|
||||||
execution (as the job is delayed at each startup by the time elapsed since the
|
|
||||||
shutdown), but should be useful for jobs depending on the number of things done
|
|
||||||
by the users (for instance, the filesystem should better be checked after a
|
|
||||||
certain amount of use by the users rather than every x days, as the system may
|
|
||||||
run from 1 day to x days during that x days interval).
|
|
||||||
.PP
|
|
||||||
The time remaining before next execution is saved every 1800
|
|
||||||
seconds (to limit damages caused by a crash) and when \fBfcron\fR exits after having
|
|
||||||
received a SIGTERM signal, i.e. when systems go down. Thus,
|
|
||||||
this kind of entries is particularly useful for systems that don't run
|
|
||||||
regularly. The syntax being very simple, it may also useful for tasks which
|
|
||||||
don't need to be run at a specific time and date.
|
|
||||||
.PP
|
|
||||||
\fBSee also\fR: options first, mail, nolog,
|
|
||||||
serial, lavg, nice, runas (see below).
|
|
||||||
.PP
|
|
||||||
.SS "SOME EXAMPLES OF LINES BASED ON ELAPSED SYSTEM UP TIME"
|
|
||||||
|
|
||||||
.nf
|
|
||||||
# Get our mails every 30 minutes
|
|
||||||
@ 30 getmails -all
|
|
||||||
|
|
||||||
# make some security tests every 48 hours of system up time,
|
|
||||||
# force a mail to be sent to root even if there is no output
|
|
||||||
@mailto(root),forcemail 2d /etc/security/msec/cron-sh/security.sh
|
|
||||||
.fi
|
|
||||||
.SS "ENTRIES BASED ON TIME AND DATE"
|
|
||||||
.PP
|
|
||||||
The second type of \fBfcrontab\fR\&'s entries begins by an optional
|
|
||||||
"&", which can be immediately followed by an optional number defining the
|
|
||||||
frequency of execution (this is equivalent to option runfreq) or a
|
|
||||||
declaration of options; it has five time and date fields, and a shell command
|
|
||||||
:
|
|
||||||
|
|
||||||
.nf
|
|
||||||
&options min hrs day-of-month month day-of-week command
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
Note that the shell command may be preceded by a user name,
|
|
||||||
which is equivalent to runas(\fI<user>\fR): as
|
|
||||||
it is only here for backward compatibility you should use option runas (see
|
|
||||||
below) instead. The frequency is interpreted as: "run this command after x
|
|
||||||
matches of time and date fields". The time and date fields are:
|
|
||||||
"TIME AND DATE FIELDS"
|
|
||||||
field: allowed values: minute: 0-59 hour: 0-23 day of month: 1-31 month: 1-12 (or names, see below) day of week: 0-7 (0 and 7 are both Sunday, or names)
|
|
||||||
.PP
|
|
||||||
A field is always filled by either an asterisk (*), which acts
|
|
||||||
as "first-last" range, a single number or a list.
|
|
||||||
.PP
|
|
||||||
List are numbers or range separated with commas (,). For
|
|
||||||
instance: "2,5,15,23".
|
|
||||||
.PP
|
|
||||||
Ranges of number are of the form
|
|
||||||
"\fI<begin>\fR-\fI<end>\fR",
|
|
||||||
where "\fIbegin\fR" and "\fIend\fR"
|
|
||||||
are included. For example, "3-5" specifies the values 3, 4 and 5. You can also
|
|
||||||
add an optional "/\fInumber\fR" to a range, where the
|
|
||||||
\fInumber\fR specifies skips of the
|
|
||||||
\fInumber\fR\&'s value through the range. For example,
|
|
||||||
"0-23/2" can be used in the hours field to specify command execution every other
|
|
||||||
hour. Finally, one or several "~\fInumber\fR" can be added
|
|
||||||
to turn off some specific values in a range. For example, "5-8~6~7" is equivalent to
|
|
||||||
"5,8". The final form of a field is:
|
|
||||||
.sp
|
|
||||||
.RS
|
|
||||||
.PP
|
|
||||||
a[-b[/c][~d][~e][...]][,f[-g[/h][~i][~j][...]]][,...]
|
|
||||||
.RE
|
|
||||||
.PP
|
|
||||||
where the letters are integers.
|
|
||||||
.PP
|
|
||||||
You can also use an asterisk (*) in a field. It acts for
|
|
||||||
"first-last". For example, a "*" in the field minute means all
|
|
||||||
minutes from minute 0 down to minute 59.
|
|
||||||
.PP
|
|
||||||
Ranges can be included in a list as a single number. For
|
|
||||||
instance: "2,5-10/2~6,15,20-25,30".
|
|
||||||
.PP
|
|
||||||
Names can also be used for the "month" and "day of week"
|
|
||||||
fields. To do so, use the first three letters of the particular day or month
|
|
||||||
(case doesn't matter). Please note that names are used exactly as numbers: you
|
|
||||||
can use them in a list or a range.
|
|
||||||
.PP
|
|
||||||
If a day of month and a day of week are given, the command
|
|
||||||
will execute only when \fBboth\fR match with the current time and
|
|
||||||
date unless option dayor is set. For example, with the line
|
|
||||||
|
|
||||||
.nf
|
|
||||||
5 10 31 * 7 echo ''
|
|
||||||
.fi
|
|
||||||
echo will only be executed
|
|
||||||
days which are a Sunday AND a 31th, at 10:05.
|
|
||||||
.PP
|
|
||||||
\fBSee also\fR: options dayor, bootrun, runfreq,
|
|
||||||
mail, nolog, serial, lavg, nice, runas (see
|
|
||||||
below).
|
|
||||||
.PP
|
|
||||||
.SS "SOME EXAMPLES OF ENTRIES BASED ON TIME AND DATE"
|
|
||||||
|
|
||||||
.nf
|
|
||||||
# run mycommand at 12:05, 12:35, 13:05, 13:35,
|
|
||||||
# 14:05 *and* 14:35 everyday
|
|
||||||
& 05,35 12-14 * * * mycommand -u me -o file
|
|
||||||
|
|
||||||
# get mails every hour past 20, 21, 22, and 24 minutes.
|
|
||||||
20-24~23 * * * * getmail
|
|
||||||
|
|
||||||
# save our work of the day every night at 03:45 with a low priority
|
|
||||||
# unless we are sunday, mail the output to jim and run that job
|
|
||||||
# at startup if computer was down at 03:45
|
|
||||||
&nice(10),mailto(jim),bootrun 45 03 * * *~0 "save --our work"
|
|
||||||
.fi
|
|
||||||
.SS "ENTRIES RUN PERIODICALLY"
|
|
||||||
.PP
|
|
||||||
The third type of \fBfcrontab\fR\&'s entries begin by a "%",
|
|
||||||
followed by a keyword from one of 3 different lists, and optional options.
|
|
||||||
.SS "*LY KEYWORDS"
|
|
||||||
.PP
|
|
||||||
Those keywords are:
|
|
||||||
.PP
|
|
||||||
\fIhourly \fR, \fIdaily \fR, \fImonthly \fR, \fIweekly \fR
|
|
||||||
.PP
|
|
||||||
Those keywords tell \fBfcron\fR to run the command
|
|
||||||
once from the beginning of the corresponding time interval to the end of that
|
|
||||||
time interval. A time interval is, for example, the time from Monday 16:20 to Wednesday 01h43.
|
|
||||||
For instance, the keyword \fIweekly\fR tells \fBfcron\fR
|
|
||||||
to run a command once between Monday and Sunday each week.
|
|
||||||
.PP
|
|
||||||
With this two kind of keywords, user must give the needed time
|
|
||||||
fields (as defined in "Entries based on time
|
|
||||||
and date" (see above)) to specify when the command should be run during
|
|
||||||
each time interval:
|
|
||||||
.PP
|
|
||||||
"NEEDED TIME FIELDS FOR EACH KEYWORD"
|
|
||||||
Keywords: must be followed by the fields: \fI hourly\fR,
|
|
||||||
\fImidhourly\fR: minutes.\fI daily\fR,
|
|
||||||
\fImiddaily\fR, \fInightly\fR,
|
|
||||||
\fIweekly\fR, \fImidweekly\fR: minutes and hours.\fI monthly\fR,
|
|
||||||
\fImidmonthly\fR: minutes, hours and days.
|
|
||||||
.SS "MID*LY KEYWORDS"
|
|
||||||
.PP
|
|
||||||
They are similar to the "*ly" ones:
|
|
||||||
.PP
|
|
||||||
\fImidhourly \fR, \fImiddaily \fR, \fInightly \fR, \fImidmonthly \fR, \fImidweekly \fR
|
|
||||||
.PP
|
|
||||||
They work exactly has the "*ly" keywords, except
|
|
||||||
that the time intervals are defined from middle to middle of the corresponding
|
|
||||||
"*ly" intervals: \fImidweekly\fR will run a command once from
|
|
||||||
Thursday to Wednesday. Note that \fInightly\fR is equivalent to
|
|
||||||
\fImiddaily\fR\&.
|
|
||||||
.PP
|
|
||||||
For example:
|
|
||||||
.PP
|
|
||||||
|
|
||||||
.nf
|
|
||||||
%nightly,mail(no) * 21-23,3-5 echo "a nigthly entry"
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
will run the command once each night either between 21:00 and
|
|
||||||
23:59, or between 3:00 and 5:59 (it will run as soon as possible. To change
|
|
||||||
that, use option random) and won't send mail (because option mail
|
|
||||||
is set to "no").
|
|
||||||
.PP
|
|
||||||
\fBSee also\fR: options lavg, noticenotrun, strict,
|
|
||||||
mail, nolog, serial, nice, runas, random (see
|
|
||||||
below).
|
|
||||||
.SS "*S KEYWORDS"
|
|
||||||
.PP
|
|
||||||
They are:
|
|
||||||
.PP
|
|
||||||
\fImins \fR, \fIhours \fR, \fIdays \fR, \fImons \fR, \fIdow \fR
|
|
||||||
.PP
|
|
||||||
Those keywords act differently, as
|
|
||||||
follows:
|
|
||||||
.PP
|
|
||||||
run this command once during EACH time interval specified, ignoring
|
|
||||||
the fields below the keyword in the time interval definition (a
|
|
||||||
\fIhours\fR prevents the mins field to be considered as a time
|
|
||||||
interval, but it will be used to determine when the line should be run during an
|
|
||||||
interval: see the note below) (\fIdow\fR means "day of
|
|
||||||
week").
|
|
||||||
.PP
|
|
||||||
Such a keyword is followed by 5 time and date fields (the same
|
|
||||||
fields used for a line based on absolute
|
|
||||||
time (see above)). Furthermore, there must be some non-matching time and
|
|
||||||
dates in the lines with that kind of keyword (i.e. the following is not allowed
|
|
||||||
:
|
|
||||||
|
|
||||||
.nf
|
|
||||||
%hours * 0-23 * * * echo "INCORRECT line!"
|
|
||||||
.fi
|
|
||||||
but
|
|
||||||
|
|
||||||
.nf
|
|
||||||
%hours * 0-22 * * * echo "Ok."
|
|
||||||
.fi
|
|
||||||
is
|
|
||||||
allowed).
|
|
||||||
.sp
|
|
||||||
.RS
|
|
||||||
.B "Note:"
|
|
||||||
.PP
|
|
||||||
a single number in a field is considered as a time interval:
|
|
||||||
|
|
||||||
.nf
|
|
||||||
%mins 15 2-4 * * * echo
|
|
||||||
.fi
|
|
||||||
will run at 2:15, 3:15
|
|
||||||
AND 4:15 every day.
|
|
||||||
.PP
|
|
||||||
But all fields below the keywords are ignored in time
|
|
||||||
interval definition:
|
|
||||||
|
|
||||||
.nf
|
|
||||||
%hours 15 2-4 * * * echo
|
|
||||||
.fi
|
|
||||||
will run only ONCE either at 2:15, 3:15 OR 4:15.
|
|
||||||
.RE
|
|
||||||
.PP
|
|
||||||
\fBSee also\fR: option random (see below).
|
|
||||||
.SS "VIXIE CRON SHORTCUTS"
|
|
||||||
.PP
|
|
||||||
To ensure a good compatibility with Vixie cron, Vixie cron shortcuts are supported. Generally speaking their usage is not recommended as they lack some of the flexibility brought by fcron. Also where the precise time of execution is not critical, the use lines based on elapsed system up time is recommended instead.
|
|
||||||
.PP
|
|
||||||
A task using a Vixie cron shortcut is of the form:
|
|
||||||
|
|
||||||
.nf
|
|
||||||
shortcut command
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
Below is a list of available shortcuts with their fcron equivalent:
|
|
||||||
"VIXIE CRON SHORTCUTS"
|
|
||||||
shortcut: meaning: fcron equivalent: suggested alternative: @reboot Run once, at startup @runatreboot,runonce(true) @yearly Run once a year 0 0 1 1 * @ 12m @annually (same as @yearly) 0 0 1 1 * @ 12m @monthly Run once a month 0 0 1 * * @ 1m @weekly Run once a week 0 0 * * 0 @ 1w @daily Run once a day 0 0 * * * @ 1d @midnight (same as @daily) 0 0 * * * @hourly Run once an hour 0 * * * * @ 1h
|
|
||||||
.PP
|
|
||||||
A few examples:
|
|
||||||
|
|
||||||
.nf
|
|
||||||
# run check_laptop_logs.sh at the first minute of every hour:
|
|
||||||
@hourly check_laptop_logs.sh
|
|
||||||
# run check_web_server.sh and check_file_server.sh every day at exactly
|
|
||||||
# midnight, both at the same time:
|
|
||||||
@daily check_web_server.sh
|
|
||||||
@daily check_file_server.sh
|
|
||||||
# run compress_home_made_app_log_files.sh at exactly midnight
|
|
||||||
# on the first day of every month:
|
|
||||||
@monthly compress_home_made_app_log_files.sh
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
However you might want to replace those task definitions by something as:
|
|
||||||
|
|
||||||
.nf
|
|
||||||
# run check_laptop_logs.sh after every hour of system up time:
|
|
||||||
@ 60 check_laptop_logs.sh
|
|
||||||
# run check_web_server.sh and check_file_server.sh every night between midnight
|
|
||||||
# and 3am, one by after the other:
|
|
||||||
%nightly,serial * 0-3 check_web_server.sh
|
|
||||||
%nightly,serial * 0-3 check_file_server.sh
|
|
||||||
# Run compress_home_made_app_log_files.sh once a month, only at night
|
|
||||||
# when the load is low:
|
|
||||||
@monthly,lavg(0.5) * 21-23,0-5 * compress_home_made_app_log_files.sh
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
Last, but not least, it should be noted that tasks defined using a Vixie cron shortcut will only have the same behaviour as in Vixie cron if they are not modified by some earlier option definition. That will be the case if you import a Vixie cron crontab into fcron without modification, or if you precede the task definition by a reset, e.g.:
|
|
||||||
|
|
||||||
.nf
|
|
||||||
!serial
|
|
||||||
@ 10 fcron_task_1
|
|
||||||
@ 25 fcron_task_2
|
|
||||||
!reset
|
|
||||||
@reboot start_unprivileged_user_program
|
|
||||||
@daily cleanup_tmp.sh
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
In the example above, serial would apply to the last two tasks if we hadn't used reset\&.
|
|
||||||
.SS "OPTIONS"
|
|
||||||
.PP
|
|
||||||
The options can be set either for every line below the
|
|
||||||
declaration or for an individual line. In the first case, the setting is done on
|
|
||||||
a whole line immediately after an exclamation mark (!), while it is done after a
|
|
||||||
"&", a "%" or a "@" depending on the type of scheduling in the second case. Note
|
|
||||||
that an option declaration in a schedule overrides the global declaration of
|
|
||||||
that same option.
|
|
||||||
.PP
|
|
||||||
Options are separated by commas (,) and their arguments, if
|
|
||||||
any, are placed in parentheses ("(" and ")") and separated by commas. No space
|
|
||||||
or surrounding (double-)quote is allowed. A declaration of options is of the form
|
|
||||||
.sp
|
|
||||||
.RS
|
|
||||||
.PP
|
|
||||||
\fIoption\fR[(\fIarg1\fR[,\fIarg2\fR][...])][,\fIoption\fR[(\fIarg1\fR[...])]][...]
|
|
||||||
.RE
|
|
||||||
.PP
|
|
||||||
where option is either the name of an option or its
|
|
||||||
abbreviation. The options are (default value in parentheses):
|
|
||||||
"VALID OPTIONS IN A FCRONTAB"
|
|
||||||
.TP
|
|
||||||
\fBbootrun\fR
|
|
||||||
.TP
|
|
||||||
\fBb\fR
|
|
||||||
\fBboolean\fR(false)
|
|
||||||
|
|
||||||
Run an &-line at \fBfcron\fR\&'s startup if it should
|
|
||||||
have run during system down time.
|
|
||||||
.TP
|
|
||||||
\fBdayand\fR
|
|
||||||
\fBboolean\fR(true)
|
|
||||||
|
|
||||||
Perform a logic AND between week and month
|
|
||||||
day.
|
|
||||||
|
|
||||||
\fBSee also\fR: options dayor\&.
|
|
||||||
.TP
|
|
||||||
\fBdayor\fR
|
|
||||||
\fBboolean\fR(false)
|
|
||||||
|
|
||||||
Perform a logic OR between week and month
|
|
||||||
day.
|
|
||||||
|
|
||||||
\fBSee also\fR: options dayand\&.
|
|
||||||
.TP
|
|
||||||
\fBerroronlymail\fR
|
|
||||||
\fBboolean\fR(false)
|
|
||||||
|
|
||||||
Mail output only if job exited with a non-zero status.
|
|
||||||
|
|
||||||
\fBSee also\fR: options mail, mailto,
|
|
||||||
forcemail, nolog\&.
|
|
||||||
.TP
|
|
||||||
\fBexesev\fR
|
|
||||||
\fBboolean\fR(false)
|
|
||||||
|
|
||||||
Can a job be executed several times simultaneously
|
|
||||||
?
|
|
||||||
|
|
||||||
\fBSee also\fR: options serialonce,
|
|
||||||
lavgonce\&.
|
|
||||||
.TP
|
|
||||||
\fBfirst\fR
|
|
||||||
.TP
|
|
||||||
\fBf\fR
|
|
||||||
\fBtime-value\fR
|
|
||||||
|
|
||||||
Delay before first execution of a job based on
|
|
||||||
system up time ("@"-lines). Useful in the following case: you have several jobs
|
|
||||||
running, say, every hour. By setting different first value for each job, you can
|
|
||||||
avoid them to run simultaneously everytime. You can also set it to 0, which is
|
|
||||||
useful when used in conjunction with option volatile\&.
|
|
||||||
.TP
|
|
||||||
\fBforcemail\fR
|
|
||||||
\fBboolean\fR(false)
|
|
||||||
|
|
||||||
Mail output even if zero-length.
|
|
||||||
|
|
||||||
Setting this option to true will also set mail to true.
|
|
||||||
|
|
||||||
\fBSee also\fR: options mail, mailto,
|
|
||||||
erroronlymail, nolog\&.
|
|
||||||
.TP
|
|
||||||
\fBjitter\fR
|
|
||||||
\fBinteger\fR(0)
|
|
||||||
|
|
||||||
Run the task between 0 and jitter seconds later than it should have been run. This options only applies to &-lines and is intended for systems where many jobs are supposed to be started at the same minute: the jitter option will randomly spread the start of all those jobs across the first jitter seconds of the minute instead of starting all of them at the first second of the minute. The argument must be between 0 and 255 (inclusive).
|
|
||||||
|
|
||||||
\fBSee also\fR: option random\&.
|
|
||||||
.TP
|
|
||||||
\fBlavg\fR
|
|
||||||
\fBreal\fR(0)
|
|
||||||
\fBreal\fR(0)
|
|
||||||
\fBreal\fR(0)
|
|
||||||
|
|
||||||
Set the values of the 1, 5 and 15-minute (in this
|
|
||||||
order) system load average values below which the job should run. The values
|
|
||||||
have a maximum of 1 decimal (i.e. "2.3"): if there are more than 1 decimal,
|
|
||||||
the value will be round off. Set a value to 0 to ignore the corresponding
|
|
||||||
load average (or all of the values to run the job regardless of the load
|
|
||||||
average).
|
|
||||||
|
|
||||||
\fBSee also\fR: options lavg1, lavg5,
|
|
||||||
lavg15, until, lavgonce, lavgor, lavgand, strict,
|
|
||||||
noticenotrun\&.
|
|
||||||
.TP
|
|
||||||
\fBlavg1\fR
|
|
||||||
.TP
|
|
||||||
\fBlavg5\fR
|
|
||||||
.TP
|
|
||||||
\fBlavg15\fR
|
|
||||||
\fBreal\fR(0)
|
|
||||||
|
|
||||||
Set the threshold of, respectively, the 1, 5 or 15
|
|
||||||
minutes system load average value. Set one of them to 0 to ignore the
|
|
||||||
corresponding load average.
|
|
||||||
|
|
||||||
\fBSee also\fR: options lavg\&.
|
|
||||||
.TP
|
|
||||||
\fBlavgand\fR
|
|
||||||
\fBboolean\fR(true)
|
|
||||||
|
|
||||||
Perform a logic AND between the 1, 5 and 15
|
|
||||||
minutes system load average values.
|
|
||||||
|
|
||||||
\fBSee also\fR: options lavg, lavgor\&.
|
|
||||||
.TP
|
|
||||||
\fBlavgonce\fR
|
|
||||||
\fBboolean\fR(1)
|
|
||||||
|
|
||||||
Can a job be queued several times in lavg queue
|
|
||||||
simultaneously?
|
|
||||||
|
|
||||||
\fBSee also\fR: options lavg\&.
|
|
||||||
.TP
|
|
||||||
\fBlavgor\fR
|
|
||||||
\fBboolean\fR(false)
|
|
||||||
|
|
||||||
Perform a logic OR between the 1, 5 and 15 minutes
|
|
||||||
system load average values.
|
|
||||||
|
|
||||||
\fBSee also\fR: options lavg, lavgand\&.
|
|
||||||
.TP
|
|
||||||
\fBmail\fR
|
|
||||||
.TP
|
|
||||||
\fBm\fR
|
|
||||||
\fBboolean\fR(true)
|
|
||||||
|
|
||||||
Mail output (if any) or not.
|
|
||||||
|
|
||||||
Setting this option to false will also set forcemail to false.
|
|
||||||
|
|
||||||
\fBSee also\fR: options mailto, forcemail,
|
|
||||||
erroronlymail, nolog\&.
|
|
||||||
.TP
|
|
||||||
\fBmailto\fR
|
|
||||||
\fBemail-address\fR(name
|
|
||||||
of file's owner)
|
|
||||||
|
|
||||||
Mail output (if needed) to
|
|
||||||
"\fIemail-address\fR". It can be either a single user-name
|
|
||||||
or a fully qualified email address. A mailto declared and empty (string
|
|
||||||
"") is equivalent to "mail(false)".
|
|
||||||
|
|
||||||
\fBSee also\fR: options mail, forcemail,
|
|
||||||
erroronlymail, nolog\&.
|
|
||||||
.TP
|
|
||||||
\fBnice\fR
|
|
||||||
.TP
|
|
||||||
\fBn\fR
|
|
||||||
\fBnice-value\fR
|
|
||||||
|
|
||||||
Change job priority. A
|
|
||||||
\fBnice-value\fR is an integer from -20 (highest
|
|
||||||
priority) to 19 (lowest) (only root is allowed to use a negative value with this
|
|
||||||
option).
|
|
||||||
.TP
|
|
||||||
\fBnolog\fR
|
|
||||||
\fBboolean\fR(false)
|
|
||||||
|
|
||||||
If set to true, log only errors for the
|
|
||||||
corresponding job(s). May be useful for jobs running very often, and/or to
|
|
||||||
reduce disk access on a laptop.
|
|
||||||
|
|
||||||
\fBSee also\fR: options mail, mailto,
|
|
||||||
erroronlymail, forcemail\&.
|
|
||||||
.TP
|
|
||||||
\fBnoticenotrun\fR
|
|
||||||
\fBboolean\fR(false)
|
|
||||||
|
|
||||||
Should \fBfcron\fR mail user to report the
|
|
||||||
non-execution of a %-job or an &-job? (because of system down state for both or
|
|
||||||
a too high system load average for the latter)
|
|
||||||
|
|
||||||
\fBSee also\fR: options lavg, strict\&.
|
|
||||||
.TP
|
|
||||||
\fBrandom\fR
|
|
||||||
\fBboolean\fR(false)
|
|
||||||
|
|
||||||
In a line run
|
|
||||||
periodically, this option answers the question: should this job be run
|
|
||||||
as soon as possible in its time interval of execution (safer), or should fcron set a
|
|
||||||
random time of execution in that time interval? Note that if this option is set, the
|
|
||||||
job may not run if fcron is not running during the \fBwhole\fR
|
|
||||||
execution interval. Besides, you must know that the random scheme may be quite
|
|
||||||
easy to guess for skilled people: thus, you shouldn't rely on this option
|
|
||||||
to make important things secure. However, it shouldn't be a problem
|
|
||||||
for most uses.
|
|
||||||
|
|
||||||
\fBSee also\fR: option jitter\&.
|
|
||||||
.TP
|
|
||||||
\fBrebootreset\fR
|
|
||||||
\fBboolean\fR(false)
|
|
||||||
|
|
||||||
When set to true, fcron will act as if the task was
|
|
||||||
a new one every time the OS reboots. This is very similar to the option volatile
|
|
||||||
but based on the OS reboots instead of fcron restarts.
|
|
||||||
You may also want to use option first if you use fcron that way.
|
|
||||||
|
|
||||||
\fBSee also\fR: options first, volatile, runonce, runatreboot\&.
|
|
||||||
.TP
|
|
||||||
\fBreset\fR
|
|
||||||
\fBboolean\fR
|
|
||||||
|
|
||||||
Reset all the options to default.
|
|
||||||
.TP
|
|
||||||
\fBrunas\fR
|
|
||||||
\fBuser-name\fR
|
|
||||||
|
|
||||||
Run with "\fIuser-name\fR"
|
|
||||||
permissions and environment (only root is allowed to use this option).
|
|
||||||
.TP
|
|
||||||
\fBrunatreboot\fR
|
|
||||||
\fBboolean\fR(false)
|
|
||||||
|
|
||||||
If set to true, the task will be run at system startup (i.e. immediately after the --sleeptime delay -- by default, 20 seconds -- when the \fBfcron\fR daemon starts the first time after the OS has booted). This is in addition to the regular schedule which won't be modified by this option.
|
|
||||||
|
|
||||||
For instance, if a program should be started automatically and run from 7am to 6pm, you could use the following dfcrontab definitions:
|
|
||||||
|
|
||||||
.nf
|
|
||||||
&runatreboot 0 6 * * 1-5 start_my_program.sh
|
|
||||||
& 0 7 * * 1-5 stop_my_program.sh
|
|
||||||
.fi
|
|
||||||
|
|
||||||
\fBSee also\fR: options volatile, runonce, rebootreset\&.
|
|
||||||
.TP
|
|
||||||
\fBrunfreq\fR
|
|
||||||
.TP
|
|
||||||
\fBr\fR
|
|
||||||
\fBinteger\fR
|
|
||||||
|
|
||||||
Run every "\fIrunfreq\fR"
|
|
||||||
matches of time and date. (this option is ignored for lines based on elapsed system up time).
|
|
||||||
.TP
|
|
||||||
\fBrunonce\fR
|
|
||||||
\fBboolean\fR(false)
|
|
||||||
|
|
||||||
Do not re-schedule the task after it has run once, until the next OS reboot (if volatile is not set) or until the next \fBfcron\fR daemon restart (if volatile is set).
|
|
||||||
|
|
||||||
\fBSee also\fR: options volatile, rebootreset, runatreboot\&.
|
|
||||||
.TP
|
|
||||||
\fBserial\fR
|
|
||||||
.TP
|
|
||||||
\fBs\fR
|
|
||||||
\fBboolean\fR(false)
|
|
||||||
|
|
||||||
\fBFcron\fR runs at most 1 serial
|
|
||||||
jobs (ie. for which the option serial is set to true), and the same number of lavg serial jobs (ie. for which both option serial and lavg (or lavg1 or lavg5 or lavg15) are set to true) simultaneously. This value may be modified by \fBfcron\fR\&'s option \fB-m\fR\&. This option is especially useful when used with big jobs in order to limit the system overload.
|
|
||||||
|
|
||||||
\fBSee also\fR: options serialonce,
|
|
||||||
lavg\&.
|
|
||||||
.TP
|
|
||||||
\fBserialonce\fR
|
|
||||||
\fBboolean\fR(0)
|
|
||||||
|
|
||||||
Can a job be queued several times in serial queue
|
|
||||||
simultaneously?
|
|
||||||
|
|
||||||
\fBSee also\fR: options exesev,
|
|
||||||
lavgonce\&.
|
|
||||||
.TP
|
|
||||||
\fBstdout\fR
|
|
||||||
\fBboolean\fR(false)
|
|
||||||
|
|
||||||
If fcron is running in the foreground, then also
|
|
||||||
let jobs print to stderr/stdout instead of mailing or discarding it.
|
|
||||||
|
|
||||||
\fBSee also\fR: fcron's option --once
|
|
||||||
in \fBfcron\fR(8)\&.
|
|
||||||
.TP
|
|
||||||
\fBstrict\fR
|
|
||||||
\fBboolean\fR(true)
|
|
||||||
|
|
||||||
When a lavg %-job is at the end of a time interval of
|
|
||||||
execution, should it be removed from the lavg queue (strict(true), so the job is
|
|
||||||
not run) or be let there until the system load average allows its execution
|
|
||||||
(strict(false))?
|
|
||||||
|
|
||||||
\fBSee also\fR: options lavg,
|
|
||||||
noticenotrun\&.
|
|
||||||
.TP
|
|
||||||
\fBtimezone\fR
|
|
||||||
\fBtimezone-name\fR(time zone of the system)
|
|
||||||
|
|
||||||
Run the job in the given time zone. timezone-name is a string which is valid for the environment variable TZ: see the documentation of your system for more details. For instance, "Europe/Paris" is valid on a Linux system. This option handles daylight saving time changes correctly. The TZ environment variable is set to the value of timezone when a job defining this option is run.
|
|
||||||
|
|
||||||
Please note that if you give an erroneous timezone-name argument, it will be SILENTLY ignored, and the job will run in the time zone of the system.
|
|
||||||
|
|
||||||
WARNING: do *not* use option timezone and option tzdiff simultaneously! There is no need to do so, and timezone is cleverer than tzdiff.
|
|
||||||
|
|
||||||
\fBSee also\fR: options tzdiff\&.
|
|
||||||
.TP
|
|
||||||
\fBtzdiff\fR
|
|
||||||
\fBinteger\fR(0)
|
|
||||||
|
|
||||||
WARNING: this option is deprecated: use option timezone instead!
|
|
||||||
|
|
||||||
Time zone difference (in hours, between -24 and
|
|
||||||
24) between the system time, and the local real time. This option allows a user
|
|
||||||
to define its & and %-lines in the local time. Note that this value is set for a
|
|
||||||
whole fcrontab file, and only the last definition is taken into account. tzdiff is quite stupid: it doesn't handle daylight saving changes, while option timezone does, so you should use the latter.
|
|
||||||
|
|
||||||
\fBSee also\fR: options timezone\&.
|
|
||||||
.TP
|
|
||||||
\fBuntil\fR
|
|
||||||
\fBtime-value\fR(0)
|
|
||||||
|
|
||||||
Set the timeout of the waiting of the wanted
|
|
||||||
system load average values. If the timeout is exceeded, the job runs no matter
|
|
||||||
the load average. Set until to 0 to remove the timeout.
|
|
||||||
|
|
||||||
\fBSee also\fR: options lavg\&.
|
|
||||||
.TP
|
|
||||||
\fBvolatile\fR
|
|
||||||
\fBboolean\fR(false)
|
|
||||||
|
|
||||||
When set to true, the job is based on a "volatile"
|
|
||||||
system up time, i.e. restart counting each time \fBfcron\fR is started, which is
|
|
||||||
useful when \fBfcron\fR is started by a script running only, for instance, during a
|
|
||||||
dialup connection: the "volatile" system up time then refers to the dialup
|
|
||||||
connection time. You may also want to use option first if you use fcron
|
|
||||||
that way.
|
|
||||||
|
|
||||||
\fBSee also\fR: options first, stdout, rebootreset,
|
|
||||||
lines based on elapsed system up time, fcron's command line argument
|
|
||||||
--once in \fBfcron\fR(8)\&.
|
|
||||||
.PP
|
|
||||||
A \fBboolean\fR argument can be non-existent, in which
|
|
||||||
case parentheses are not used and it means true; the string
|
|
||||||
"true", "yes" or 1 to mean true; and the string "false",
|
|
||||||
"no" or 0 to mean false\&. See above for explanations about
|
|
||||||
time value (section "entries based on elapsed system up
|
|
||||||
time").
|
|
||||||
.PP
|
|
||||||
Note that dayand and
|
|
||||||
dayor are in fact the same option: a false value to
|
|
||||||
dayand is equivalent to a true to dayor,
|
|
||||||
and reciprocally a false value to dayor is equivalent a true
|
|
||||||
value to dayand\&. It is the same for
|
|
||||||
lavgand and lavgor\&.
|
|
||||||
.PP
|
|
||||||
Note a special case to be handled: A job should be entered
|
|
||||||
into the serial queue, *but* the previous entry for this job has not been
|
|
||||||
completed yet, because of high system load or some external event. Option
|
|
||||||
serialonce answers the question: should the new entry of the
|
|
||||||
job be ignored? This way one can distinguish between jobs required to run a
|
|
||||||
certain number of times, preferably at specified times, and tasks to be
|
|
||||||
performed irrespective of their number (-> serialonce(true)), which make the
|
|
||||||
system respond faster.
|
|
||||||
.PP
|
|
||||||
The same considerations apply for the load average queue, and
|
|
||||||
can be expressed with option lavgonce\&.
|
|
||||||
.PP
|
|
||||||
Moreover, if the serial or the lavg queue contains
|
|
||||||
respectively more than 30 and 30 jobs, any new job is
|
|
||||||
refused and not run to avoid an overwhelming of system resources. In this case,
|
|
||||||
an error message is logged through syslog.
|
|
||||||
.PP
|
|
||||||
Finally, if jobs remain in the lavg or serial queues when
|
|
||||||
fcron stops, they will be put once in the corresponding queue on startup (their
|
|
||||||
order may not be conserved).
|
|
||||||
.PP
|
|
||||||
.SS "AN EXAMPLE OF AN OPTION DECLARATION:"
|
|
||||||
|
|
||||||
.nf
|
|
||||||
!reset,serial(true),dayor,bootrun(0),mailto(root),lavg(.5,2,1.5)
|
|
||||||
.fi
|
|
||||||
.SH "EXAMPLES"
|
|
||||||
.PP
|
|
||||||
.SS "AN EXAMPLE OF A USER FCRONTAB"
|
|
||||||
|
|
||||||
.nf
|
|
||||||
# use /bin/bash to run commands, ignoring what /etc/passwd says
|
|
||||||
SHELL=/bin/bash
|
|
||||||
|
|
||||||
# mail output to thib, no matter whose fcrontab this is
|
|
||||||
!mailto(thib)
|
|
||||||
|
|
||||||
# define a variable which is equivalent to " Hello thib and paul! "
|
|
||||||
# here the newline characters are escaped by a backslash (\\)
|
|
||||||
# and quotes are used to force to keep leading and trailing blanks
|
|
||||||
TEXT= " Hello\\
|
|
||||||
thib and\\
|
|
||||||
paul! "
|
|
||||||
|
|
||||||
# we want to use serial but not bootrun:
|
|
||||||
!serial(true),b(0)
|
|
||||||
|
|
||||||
# run after five minutes of execution the first time,
|
|
||||||
# then run every hour
|
|
||||||
@first(5) 1h echo "Run every hour"
|
|
||||||
|
|
||||||
# run every day
|
|
||||||
@ 1d echo "fcron daily"
|
|
||||||
|
|
||||||
# run once between in the morning and once in the afternoon
|
|
||||||
# if systems is running at any moment of these time intervals
|
|
||||||
%hours * 8-12,14-18 * * * echo "Hey boss, I'm working today!"
|
|
||||||
|
|
||||||
# run once a week during our lunch
|
|
||||||
%weekly * 12-13 echo "I left my system on at least once \\
|
|
||||||
at lunch time this week."
|
|
||||||
|
|
||||||
# run every Sunday and Saturday at 9:05
|
|
||||||
5 9 * * sat,sun echo "Good morning Thibault!"
|
|
||||||
|
|
||||||
# run every even days of march at 18:00, except on 16th
|
|
||||||
0 18 2-30/2~16 Mar * echo "It's time to go back home!"
|
|
||||||
|
|
||||||
# the line above is equivalent to
|
|
||||||
& 0 18 2-30/2~16 Mar * echo "It's time to go back home!"
|
|
||||||
|
|
||||||
# reset options to default and set runfreq for lines below
|
|
||||||
!reset,runfreq(7)
|
|
||||||
|
|
||||||
# run once every 7 matches (thanks to the declaration above),
|
|
||||||
# so if system is running every day at 10:00, this will be
|
|
||||||
# run once a week
|
|
||||||
& 0 10 * * * echo "if you got this message last time 7 days ago,\\
|
|
||||||
this computer has been running every day at 10:00 last week.\\
|
|
||||||
If you got the message 8 days ago, then the system has been down \\
|
|
||||||
one day at 10:00 since you got it, etc"
|
|
||||||
|
|
||||||
# wait every hour for a 5 minutes load average under 0.9
|
|
||||||
@lavg5(0.9) 1h echo "The system load average is low"
|
|
||||||
|
|
||||||
# wait a maximum of 5 hours every day for a fall of the load average
|
|
||||||
@lavgand,lavg(1,2.0,3.0),until(5h) 1d echo "Load average is going down"
|
|
||||||
|
|
||||||
# wait for the best moment to run a heavy job
|
|
||||||
@lavgor,lavg(0.8,1.2,1.5),nice(10) 1w echo "This is a heavy job"
|
|
||||||
|
|
||||||
# run once every night between either 21:00 and 23:00 or
|
|
||||||
# between 3:00 and 6:00
|
|
||||||
%nightly,lavg(1.5,2,2) * 21-23,3-6 echo "It's time to retrieve \\
|
|
||||||
the latest release of Mozilla!"
|
|
||||||
.fi
|
|
||||||
.SH "FILES"
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/fcron.conf\fB\fR
|
|
||||||
Configuration file for \fBfcron\fR, \fBfcrontab\fR and
|
|
||||||
\fBfcrondyn\fR: contains paths (spool dir, pid file) and default programs to use
|
|
||||||
(editor, shell, etc). See \fBfcron.conf\fR(5) for
|
|
||||||
more details.
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/fcron.allow\fB\fR
|
|
||||||
Users allowed to use \fBfcrontab\fR and \fBfcrondyn\fR (one
|
|
||||||
name per line, special name "all" acts for everyone)
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/fcron.deny\fB\fR
|
|
||||||
Users who are not allowed to use \fBfcrontab\fR and
|
|
||||||
\fBfcrondyn\fR (same format as allow file)
|
|
||||||
.TP
|
|
||||||
\fB\fI/usr/local/etc/pam.d/fcron\fB (or \fI/usr/local/etc/pam.conf\fB)\fR
|
|
||||||
PAM configuration file for
|
|
||||||
\fBfcron\fR\&. Take a look at pam(8) for more details.
|
|
||||||
.SH "SEE ALSO"
|
|
||||||
|
|
||||||
\fBfcrontab\fR(1),
|
|
||||||
|
|
||||||
\fBfcrondyn\fR(1),
|
|
||||||
|
|
||||||
\fBfcrontab\fR(5),
|
|
||||||
|
|
||||||
\fBfcron.conf\fR(5),
|
|
||||||
|
|
||||||
\fBfcron\fR(8).
|
|
||||||
|
|
||||||
If you're learning how to use fcron from scratch, I suggest
|
|
||||||
that you read the HTML version of the documentation (if your are not reading it
|
|
||||||
right now! :) ): the content is the same, but it is easier to navigate thanks
|
|
||||||
to the hyperlinks.
|
|
||||||
.SH "AUTHOR"
|
|
||||||
.PP
|
|
||||||
Thibault Godouet <fcron@free.fr>
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
<!--
|
|
||||||
Fcron documentation
|
|
||||||
Copyright 2000-2014 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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>See also</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>If you're learning how to use fcron from scratch, I suggest
|
|
||||||
that you read the HTML version of the documentation (if your are not reading it
|
|
||||||
right now! :) ): the content is the same, but it is easier to navigate thanks
|
|
||||||
to the hyperlinks.</member>
|
|
||||||
</simplelist>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Author</title>
|
|
||||||
<para>Thibault Godouet &email;</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:
|
|
||||||
-->
|
|
||||||
|
|
@ -1,152 +0,0 @@
|
||||||
<!--
|
|
||||||
Fcron documentation
|
|
||||||
Copyright 2000-2014 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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
<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:
|
|
||||||
-->
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
<!--
|
|
||||||
Fcron documentation
|
|
||||||
Copyright 2000-2014 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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
<sect1 id="relnotes">
|
|
||||||
<title>Release notes: &fcron; &version;</title>
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>Nothing special to be aware of in this release.</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:
|
|
||||||
-->
|
|
||||||
|
|
@ -1,93 +0,0 @@
|
||||||
<!--
|
|
||||||
Fcron documentation
|
|
||||||
Copyright 2000-2014 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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
<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:
|
|
||||||
-->
|
|
||||||
|
|
@ -1,134 +0,0 @@
|
||||||
<!--
|
|
||||||
Fcron documentation
|
|
||||||
Copyright 2000-2014 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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
<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>Option to compile and install from git sources without generating the doc</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>register in OS suspend/hibernate mechanism to stop fcron when going to sleep and start it again when resuming from sleep (see FAQ entry).</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para></para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</sect2>
|
|
||||||
<sect2>
|
|
||||||
<title>Low priority</title>
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>Add unit tests using some unit-test framework (turn the tests/* code into unit tests)</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>For environment settings, make a var substitution.</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>
|
|
||||||
<listitem>
|
|
||||||
<para>Use directory notifications (FAM) / inotify, and support a fcrontab
|
|
||||||
and a cron.d as Vixie cron does (directly included in fcron itself, not thanks to a script as now).
|
|
||||||
However the parsing work is done by fcrontab, and should probably keep on being done by fcrontab for
|
|
||||||
security and stability reasons: have fcron call fcrontab to do that job?</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>could be worth checking fcron for memory leaks using specialized library (just in case...)</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>option to put a maximum limit on the execution time of a task + terminate it if not finished yet + send email to let the user know</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>setting to limit the number of jobs of a single user in the serialq/lavgq to X jobs + make sure root always has Y slots that it can use in those queues (i.e. number of slots used by root + number of free slots >= Y)</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>Test (and use ?) docbook2x-man -- xlstproc ? cf http://antoine.ginies.free.fr/docbook/ch09.html</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>find way to have the non translated pages of the French translation be updated automatically (changes, todo, etc -> copied from the English doc)</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>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>
|
|
||||||
</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:
|
|
||||||
-->
|
|
||||||
|
|
@ -1,730 +0,0 @@
|
||||||
#Fcron documentation Fcron: how and why? How to install fcron Release
|
|
||||||
notes: fcron 3.2.0
|
|
||||||
|
|
||||||
Copyright © 2000-2014 Thibault Godouet Fcron 3.2.0 Web page :
|
|
||||||
http://fcron.free.fr
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
Fcron documentation
|
|
||||||
Prev Chapter 1. Fcron: how and why? Next
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
1.3. Changes
|
|
||||||
|
|
||||||
From version 3.1.3 to 3.2.0
|
|
||||||
* Print date as %Y-%m-%d (the ISO 8601 date format), to avoid being
|
|
||||||
ambiguous in international context. Also always use the ':' as
|
|
||||||
hour:minute separator (there was a couple of 'h' instead).
|
|
||||||
* Don't fully disable a @-line when something goes wrong (e.g. fcron
|
|
||||||
didn't shut down cleanly). The idea was to prevent infinite loops,
|
|
||||||
but this was overkill. Instead set its next execution to
|
|
||||||
now+frequency.`
|
|
||||||
* Cosmetic changes in the log lines (quote the job shell commands)
|
|
||||||
and fcrondyn (use the pipe char "|" as a column separator).
|
|
||||||
* Fixed file descriptor leak when executing jobs in case of NSS
|
|
||||||
failures (thanks Pavel Stano).
|
|
||||||
|
|
||||||
From version 3.1.2 to 3.1.3
|
|
||||||
* Fixed compilation on Solaris 10, and fixed fcrondyn authentication
|
|
||||||
without a password on that platform.
|
|
||||||
* Fixed bug where LONG_MAX could potentially be used in functions
|
|
||||||
like localtime(), which is too big for localtime(). This was
|
|
||||||
unlikely to happen unless there was another problem in the first
|
|
||||||
place.
|
|
||||||
* fcrondyn -x no longer adds null characters at the end of the
|
|
||||||
output. This would cause problems if the output was piped to
|
|
||||||
something as grep. Thanks Dimitri Semitsoglou-Tsiapos for pointing
|
|
||||||
this out.
|
|
||||||
* Fixed minor bug in fcronsighup resulting in log errors about
|
|
||||||
closing the signal file
|
|
||||||
* fcrondyn no longer crashes when receiving an EOF when using
|
|
||||||
readline (thanks Wade Carpenter for the patch)
|
|
||||||
* fcrontab no longer crash if mailto is empty (thanks Olaf for
|
|
||||||
reporting the issue)
|
|
||||||
* Fixed SELinux issue with Linux user being used instead of the
|
|
||||||
SELinux user (thanks Sven Vermeulen for the patch)
|
|
||||||
|
|
||||||
From version 3.1.1 to 3.1.2
|
|
||||||
* bug fix: fixed fcron crash bug when using fcrondyn
|
|
||||||
* bug fix: the configure option --without-sendmail was not working
|
|
||||||
correctly.
|
|
||||||
* bug fix: inline runas wouldn't work with Vixie-cron style shortcut
|
|
||||||
lines.
|
|
||||||
* bug fix: fixed bug in the code to log to a file.
|
|
||||||
* systemd: fixed the installation on systems using systemd, and also
|
|
||||||
don't kill jobs when killing fcron.
|
|
||||||
* Made file closures more robust to prevent bugs difficult to
|
|
||||||
troubleshoot to creep in.
|
|
||||||
|
|
||||||
From version 3.1.0 to 3.1.1
|
|
||||||
* Added readline support for fcrondyn
|
|
||||||
* tweaked 'make indent' options and applied
|
|
||||||
* Fcron can now log to a file (without syslog) - thanks Matthew
|
|
||||||
Signorini.
|
|
||||||
* fixed fcrontab edition of *ly lines (hourly, daily, etc)
|
|
||||||
* fixed fcron crashes when noticenotrun was triggered
|
|
||||||
|
|
||||||
From version 3.0.6 to 3.1.0
|
|
||||||
* Vixie cron compatibility: added options @reboot, @daily, @hourly,
|
|
||||||
etc. Also added more generic options runatreboot, rebootreset and
|
|
||||||
runonce.
|
|
||||||
* Pass fcrondyn client credentials through the socket when possible
|
|
||||||
so as the user doesn't need to type his password when using
|
|
||||||
fcrondyn.
|
|
||||||
* added audit (libaudit) support
|
|
||||||
* Better validation of string arguments of fcrontab options. In
|
|
||||||
particular for timezones, previously a space could be added at the
|
|
||||||
beginning or the end of the timezone with no warning, and this led
|
|
||||||
fcron to use an unexpected timezone, which could cause confusion.
|
|
||||||
* Allow tasks to run every seconds
|
|
||||||
* don't inherit fcron's environment when running a job but build the
|
|
||||||
environment from scratch (cleaner, and this is what Vixie cron
|
|
||||||
does)
|
|
||||||
* fcron now sets the email headers X-Cron-Env and Auto-Submitted (as
|
|
||||||
described in RFC 3834).
|
|
||||||
* email encoding: fcron now sets the email headers Content-Type and
|
|
||||||
Content-Transfer-Encoding. They can be controlled by setting the
|
|
||||||
CONTENT_TYPE and CONTENT_TRANSFER_ENCODING variables in fcrontabs.
|
|
||||||
* Added systemd service definition (thank you Reiner)
|
|
||||||
* Allow Makefile parallelism (e.g. make -j 4)
|
|
||||||
* bug fix: fcrontab: don't alert about invalid character when
|
|
||||||
correcting fcrontab twice
|
|
||||||
* bug fix: fixed free_safe() function (replaced by macro).
|
|
||||||
* bug fix: configure script: usage of sendmail couldn't be disabled
|
|
||||||
* bug fix: fixed a potential (unlikely) 1 byte overflow in strncat()
|
|
||||||
in socket.c
|
|
||||||
* Quite a lot of code clean-up and refactoring -- e.g. implemented
|
|
||||||
generic unordred list for lavgq / exeq.
|
|
||||||
|
|
||||||
From version 3.0.5 to 3.0.6
|
|
||||||
* Fixed bug preventing normal user from running fcrontab -l if
|
|
||||||
fcron's uid!=gid
|
|
||||||
* Fixed fcrontab's PAM initialization when working on the systab
|
|
||||||
user.
|
|
||||||
* Added check_system_crontabs.sh which is to replace the less
|
|
||||||
portable check_system_crontabs.bash.
|
|
||||||
* Added option -c to check_system_crontabs.sh to specify a fcron.conf
|
|
||||||
file to use
|
|
||||||
* Fixed Makefile bug preventing installation when building from a
|
|
||||||
different folder than the sources (wrong fcron.conf path)
|
|
||||||
|
|
||||||
From version 3.0.4 to 3.0.5
|
|
||||||
* Security issue: fixed security issue that allowed malicious user to
|
|
||||||
read any file readable by group 'fcron' (in particular fcron's
|
|
||||||
config files and the fcrontabs of non-root users). On systems
|
|
||||||
without seteuid() (i.e. quite exotic systems) then the bug is
|
|
||||||
harder to exploit but any file could be read.
|
|
||||||
* Improved general security of fcrontab and fcrondyn by dropping more
|
|
||||||
privileges.
|
|
||||||
* Work on portability (aix, hpux, irix, tru64 unix, solaris). Thanks
|
|
||||||
Peter O'Gorman for his patch!
|
|
||||||
* Patched startup script to make it more compliant to the LSB.
|
|
||||||
* Increased maximum number of fcrontab entries from 256 to 1024.
|
|
||||||
* bug fix: if fcron could not fork() to run a job, then the job would
|
|
||||||
still appear to be running until fcron is restarted (thanks
|
|
||||||
Alexander Y. Fomichev for noticing this bug).
|
|
||||||
* bug fix: fcrontab used to accept MAXENTRIES+1 fcrontab entries
|
|
||||||
* chdir to /tmp before executing the editor (as some editor needs to
|
|
||||||
be able to read information on the current folder).
|
|
||||||
|
|
||||||
From version 3.0.3 to 3.0.4
|
|
||||||
* Initialize the random number generator with some values specific to
|
|
||||||
the machine so as two fcron started exactly at the same time on two
|
|
||||||
different machines run their random jobs at different time. This is
|
|
||||||
useful for clusters for instance.
|
|
||||||
* Added option erroronlymail so as the output of a job is emailed
|
|
||||||
only when the job exited with a non-zero status.
|
|
||||||
* Bug fix: in certain conditions, jobs could be executed outside
|
|
||||||
their interval of execution when using option random on %-lines.
|
|
||||||
* Fixed bug which prevented the pid of the job to be written to the
|
|
||||||
(grand-)parent process. This was not a major issue but would
|
|
||||||
prevent fcrondyn from working well with the concerned jobs. This
|
|
||||||
bug was caused by a close() function applied twice on a file
|
|
||||||
descriptor, which would trigger the bug in some rare occasions
|
|
||||||
(only one affected linux system reported).
|
|
||||||
* Fixed bug which would stop fcron from running any job any more on
|
|
||||||
the affected system and until fcron was restarted if the bug above
|
|
||||||
occured.
|
|
||||||
* Cleaned-up the closures of file descriptors (check for errors,
|
|
||||||
etc).
|
|
||||||
|
|
||||||
From version 3.0.3-rc1 to 3.0.3
|
|
||||||
* The configure script now check that the make command is GNU make
|
|
||||||
(which is required to build fcron).
|
|
||||||
Bug fix: better handling of getpwnam() errors (we cannot rely on
|
|
||||||
errno to spot an error). This was causing problems for AIX for
|
|
||||||
instance.
|
|
||||||
|
|
||||||
From version 3.0.2 to 3.0.3-rc1
|
|
||||||
* New configure scripts, with more standard default values for paths,
|
|
||||||
etc. This aims at simplifying the packaging of fcron. Thanks go to
|
|
||||||
Patrice Dumas for his patch!
|
|
||||||
* New make targets: perms and strip. This aims at simplifying the
|
|
||||||
packaging of fcron. Thanks go to Patrice Dumas for his patch!
|
|
||||||
* Set environment variable LOGNAME when running a job (as Vixie Cron
|
|
||||||
does: thanks Martin McGreal for pointing that out).
|
|
||||||
* Portability work for AIX 5.2 and Solaris 8 and 10 (thanks Martin
|
|
||||||
McGreal).
|
|
||||||
* Chmod()ed fcron's fifo file to 777. It was 666 previously, but the
|
|
||||||
exec bit is needed for AIX and apparently ignored on other
|
|
||||||
platforms, so we now set it to.
|
|
||||||
* Set TZ environment variable for lines which uses fcron option
|
|
||||||
timezone.
|
|
||||||
* A file was closed twice by fcrontab: removed the duplicate close().
|
|
||||||
* Replaced include sys/termios.h by termios.h.
|
|
||||||
* Fixed a fcrontab bug cause by an return value not handled and
|
|
||||||
resulting in many useless (but pretty much harmless) iteration in a
|
|
||||||
loop.
|
|
||||||
|
|
||||||
From version 3.0.1 to 3.0.2
|
|
||||||
* Use sockaddr's field sa_len/sun_len on system defining it (BSD,
|
|
||||||
...). It should allow fcrondyn to connect to fcron on these
|
|
||||||
systems.
|
|
||||||
* Non-SELinux systems: run each job in a different session by calling
|
|
||||||
setuid() for each one of them. This is to improve compatibility
|
|
||||||
with Vixie cron.
|
|
||||||
* Don't use the shell defined in /etc/passwd by default, but use the
|
|
||||||
default value from fcron.conf instead. This is for compatibility
|
|
||||||
with Vixie cron.
|
|
||||||
* Use root name and group instead of root uid and gid. This seems
|
|
||||||
more logical since the configure scripts asks for the name and
|
|
||||||
group and not the uid and gid.
|
|
||||||
* Added an init file for Suse in script/ (contribution from Alex:
|
|
||||||
thanks!).
|
|
||||||
* Minor spelling fixes in the French documentation.
|
|
||||||
|
|
||||||
From version 3.0.0 to 3.0.1
|
|
||||||
* fcrontab: access user's directory with user's rights (necessary if
|
|
||||||
user/group fcron has not the right to read the directory).
|
|
||||||
* improvement in check_system_crontabs: more comments, added some
|
|
||||||
help messages, added command line options, cleaner, safer code.
|
|
||||||
* Improved English documentation: clarified some previously-unclear
|
|
||||||
points.
|
|
||||||
* Added French translation of the manual pages (thanks go to Alain
|
|
||||||
Portal)
|
|
||||||
* Removed old documentation from the package.
|
|
||||||
* Better handling of the pipes in job.c: this should remove some
|
|
||||||
problems encountered on BSD systems.
|
|
||||||
* bug fix: do not use a tv_usec > 999999: should fix the problem
|
|
||||||
encountered on BSD systems with select().
|
|
||||||
* bug fix: fixed a bug in make_msg(): the size of a string written to
|
|
||||||
a buffer was not controlled correctly in some cases. This could
|
|
||||||
result in buffer overflow and thus this was security problem.
|
|
||||||
However the bug seems not exploitable as the part of the string
|
|
||||||
which could overflow the buffer could not be freely defined by an
|
|
||||||
attacker (it was either ": " or one of the strings returned by
|
|
||||||
strerror()).
|
|
||||||
* Bug fix: set the FDs correctly for select().
|
|
||||||
|
|
||||||
From version 2.9.7 to 3.0.0
|
|
||||||
* Added a missing entry in changelog (changes from 2.9.6 to 2.9.7,
|
|
||||||
bug fix for NetBSD).
|
|
||||||
* Merged a patch for the check_system_crontabs script (Security
|
|
||||||
enhancements and cleanups).
|
|
||||||
|
|
||||||
From version 2.9.6 to 2.9.7
|
|
||||||
* Added time zone support (option timezone).
|
|
||||||
* Better support FreeBSD's users and groups modifications in fcron's
|
|
||||||
install scripts.
|
|
||||||
* Fixed a bug which used to make fcron send empty mails on very
|
|
||||||
recent systems.
|
|
||||||
* Fixed a bug which prevented fcrondyn to being used on NetBSD
|
|
||||||
(thanks go to Gabor Z. Papp).
|
|
||||||
* Added some casts in fileconf.c and save.c (to avoid some warnings
|
|
||||||
when compiling on HP-UX).
|
|
||||||
* Added a FAQ entry on how to emulate an anacron entry.
|
|
||||||
|
|
||||||
From version 2.9.5.1 to 2.9.6
|
|
||||||
* fixed the bug which made jobs run an hour too early after a
|
|
||||||
daylight saving time change.
|
|
||||||
Added detailed explanations about when a job will run when there is
|
|
||||||
a DST change in the FAQ.
|
|
||||||
* fixed fcrondyn's "Unknown command" bug on x86_64 (thanks go to
|
|
||||||
Georgi Georgiev).
|
|
||||||
* made fcrontab behave better when there is no space left in the
|
|
||||||
spool directory (used to truncate the fcrontab source file).
|
|
||||||
* 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.
|
|
||||||
* HP-UX support (needs more tests).
|
|
||||||
* bug fix: restore umask even if fcron runs unprivileged.
|
|
||||||
|
|
||||||
From version 2.9.5 to 2.9.5.1
|
|
||||||
* Fixed serious security vulnerabilities in fcronsighup, and improved
|
|
||||||
fcronsighup's overall security (drop privileges, better check user
|
|
||||||
inputs, etc).
|
|
||||||
* Fixed several typos in the doc.
|
|
||||||
* Updated debian package scripts (patch from debian maintainer).
|
|
||||||
|
|
||||||
From version 2.9.4 to 2.9.5
|
|
||||||
* Ported to HP-UX (thanks go to Scott Tinsley)
|
|
||||||
* Implemented fcrondyn commands run and runnow.
|
|
||||||
* Merged patch from Russell Coker for new SE Linux.
|
|
||||||
* Merged debian/ dir for debian package.
|
|
||||||
* 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.
|
|
||||||
* changed a log message: a job which has ended without error is
|
|
||||||
reported has "completed" (which is more appropriated than
|
|
||||||
"terminated").
|
|
||||||
* 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()).
|
|
||||||
* 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.
|
|
||||||
* 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.
|
|
||||||
* Fixed a small bug: scripts were supposing perl was in /usr/bin.
|
|
||||||
* Fixed a bug which caused the pid of a child process to be
|
|
||||||
incorrectly read
|
|
||||||
* fixed memory leak: some strings returned by log.c:make_msg()
|
|
||||||
weren't always free()d.
|
|
||||||
* bug fix: fcrondyn commands renice and kill used not to handle
|
|
||||||
correctly the case where a job has several entries in exeq (exesev
|
|
||||||
jobs).
|
|
||||||
|
|
||||||
From version 2.9.3 to 2.9.4
|
|
||||||
* Merged support for SE Linux (patch from Russell Coker: thanks!)
|
|
||||||
* Work on the documentation (fixed spelling mistakes, tried to make
|
|
||||||
things clearer in fcrontab.5) (thanks Bill Wohler for your help!)
|
|
||||||
* Changed the subject line of mail reports: it now contains the
|
|
||||||
subject line, and is very similar to vixie cron's one.
|
|
||||||
* Added a sum-up at the end of ./configure.
|
|
||||||
* bug fix: "makewhatis" bug is fixed -- at last!
|
|
||||||
In fact, the problems encountered were due to an abusively ignored
|
|
||||||
signal SIGPIPE.
|
|
||||||
* bug fix: possible crash of fcron when trying to save a file if
|
|
||||||
there was no space left on device.
|
|
||||||
* 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.
|
|
||||||
* bug fix: option first was broken in fcron 2.9.3.
|
|
||||||
* fixed a little typo in an error message (could->couldn't)
|
|
||||||
* bug fix: do not ignore the last line of a fcrontab if there is no
|
|
||||||
\n before the end of file.
|
|
||||||
* fixed compile on SunOS 5.9 .
|
|
||||||
* Fcron now compiles on MacOS X.
|
|
||||||
* added some $srcdir to be able (again ;) ) to run configure from
|
|
||||||
another directory.
|
|
||||||
* Perf improvement: use buffer for i/o in run_job().
|
|
||||||
|
|
||||||
From version 2.9.2 to 2.9.3
|
|
||||||
* 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.
|
|
||||||
* Perf improvement: we now use buffers to write something to disk
|
|
||||||
(became necessary due to the use of O_SYNC).
|
|
||||||
* 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.
|
|
||||||
* 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).
|
|
||||||
* Implemented functions kill (send a signal to a running job) and
|
|
||||||
renice (change the priority of a running job) in fcrondyn.
|
|
||||||
* Added fcron's option -q to control the lavg and serial queue sizes.
|
|
||||||
* Added some timeouts in fcron for fcrondyn clients.
|
|
||||||
* Fcron is less restrictive concerning mailto addresses. In
|
|
||||||
particular, you can now use address like user@host.
|
|
||||||
* bug fix: in 2.9.2, fcrontab and fcron did not set correctly some
|
|
||||||
file modes.
|
|
||||||
* 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).
|
|
||||||
* code clean: use the same scheme for all struct types, removed some
|
|
||||||
code redundancy (save to disk management).
|
|
||||||
|
|
||||||
From version 2.9.1 to 2.9.2
|
|
||||||
* Added a system fcrontab. Root can access it with fcrontab by using
|
|
||||||
"-u systab".
|
|
||||||
* fcrondyn's ls_lavgq, ls_serialq and ls_exeq are now functional.
|
|
||||||
* mailto can now be set to a non-real user (for ex., an alias).
|
|
||||||
* 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.
|
|
||||||
* use open() instead of fopen() to write files, for more security.
|
|
||||||
* fcrontab sets euid=uid before running the editor. This is required
|
|
||||||
by some programs (for instance, perl).
|
|
||||||
* bug fix: using DESTDIR with make did not work with the doc.
|
|
||||||
* Code clean: changed macros to make parameters clearly different
|
|
||||||
from vars.
|
|
||||||
|
|
||||||
From version 2.9.0 to 2.9.1
|
|
||||||
* fcron can now be run without root's privileges (see FAQ)
|
|
||||||
* added configure's option --with-boot-install .
|
|
||||||
* Minor change in the PAM code of fcron: may work better on some
|
|
||||||
systems.
|
|
||||||
* 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.
|
|
||||||
* 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)
|
|
||||||
* Bug fix: typo error prevented fcrontab to be compiled on some
|
|
||||||
systems.
|
|
||||||
* Minor bug fix about stdout option.
|
|
||||||
* Minor bug fix: giving fcrontab's option -c a relative path now
|
|
||||||
works correctly.
|
|
||||||
|
|
||||||
From version 2.1.0 to 2.9.0
|
|
||||||
* 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.
|
|
||||||
* 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.
|
|
||||||
* All the documentation has been ported to SGML DocBook.
|
|
||||||
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: /usr/share/doc/fcron-X.X.X/).
|
|
||||||
* Fcrontab.5 has been updated and improved. Some examples have been
|
|
||||||
added and some possible use of the different lines and options are
|
|
||||||
mentioned.
|
|
||||||
* 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.
|
|
||||||
* 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".
|
|
||||||
* bug fixed: you can now use arguments in the var EDITOR and VISUAL.
|
|
||||||
* 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.
|
|
||||||
|
|
||||||
From version 2.0.0 to 2.1.0
|
|
||||||
* PAM support for fcron and fcrontab (need testing! - help would be
|
|
||||||
appreciated).
|
|
||||||
* Fcron now send a mail if a job has noticenotrun set and could not
|
|
||||||
be run because of a queue full.
|
|
||||||
* 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!
|
|
||||||
* 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.
|
|
||||||
* code cleaning.
|
|
||||||
* 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).
|
|
||||||
* bug fixed: fcrontab's "-z" option was not ignoring previous user's
|
|
||||||
fcrontab version.
|
|
||||||
* 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).
|
|
||||||
|
|
||||||
From version 1.1.1 to 2.0.0
|
|
||||||
* using SIGUSR2 on fcron makes it print its current schedule on
|
|
||||||
syslog and toggles on/off the printing of debug info on syslog.
|
|
||||||
* 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.
|
|
||||||
* 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.
|
|
||||||
* added a FAQ.
|
|
||||||
* 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!).
|
|
||||||
* bug fixed: inserting a job in serial queue or running a job not
|
|
||||||
finished at startup was broken, unless the job was strict(no).
|
|
||||||
* bug fixed: some 1.1.1 changes used to make fcron impossible to
|
|
||||||
compile without sendmail (./configure's option
|
|
||||||
"--with-sendmail=no").
|
|
||||||
* bug fixed in sysV boot script: we know specify explicitly the path
|
|
||||||
to fcron.
|
|
||||||
* bug fixed: unresolved error used to occur on some system not
|
|
||||||
defining getopt_long().
|
|
||||||
|
|
||||||
From version 1.1.0 to 1.1.1
|
|
||||||
* 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).
|
|
||||||
* 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).
|
|
||||||
* added fcron's option "-m" to control the number of serial jobs
|
|
||||||
which can be executed simultaneously.
|
|
||||||
* added fcron's option "-n" to create a new spool dir.
|
|
||||||
* 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.
|
|
||||||
* 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).
|
|
||||||
* support of Solaris (and SysV).
|
|
||||||
* early support of OpenBSD.
|
|
||||||
* 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.
|
|
||||||
* 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").
|
|
||||||
* 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".
|
|
||||||
* bug corrected: a "all" in fcron.allow with no fcron.deny file was
|
|
||||||
not considered as an allow rule.
|
|
||||||
|
|
||||||
From version 1.0.3 to 1.1.0
|
|
||||||
* 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.
|
|
||||||
* better management of the errors in load/save fcrontabs functions.
|
|
||||||
* the doc is a clearer about @-lines.
|
|
||||||
* 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).
|
|
||||||
* we now remove unwanted fcrontabs before loading them in memory:
|
|
||||||
well, it seems to be more logical like that :)) .
|
|
||||||
* 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).
|
|
||||||
* 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).
|
|
||||||
|
|
||||||
From version 1.0.2 to 1.0.3
|
|
||||||
* fcron can now be configured and compiled from any directory (not
|
|
||||||
only from the source dir).
|
|
||||||
* bug fix: fcron now sets umask to the value it got at start before
|
|
||||||
running a job.
|
|
||||||
* 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.
|
|
||||||
|
|
||||||
From version 1.0.1 to 1.0.2
|
|
||||||
* the user for whom a job is run is now logged.
|
|
||||||
* installation script is now more explicit about what it is going to
|
|
||||||
do.
|
|
||||||
* a boolean value can now also be set by "yes" and "no".
|
|
||||||
* bug corrected: bootrun option works again.
|
|
||||||
* bug corrected: shell variable containing underscore (_) used to be
|
|
||||||
rejected.
|
|
||||||
* 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).
|
|
||||||
|
|
||||||
From version 1.0.0 to 1.0.1
|
|
||||||
* security fix: a user used to be able to read a file owned by root
|
|
||||||
if root runs a "fcrontab -u user -e".
|
|
||||||
|
|
||||||
From version 0.9.5 to 1.0.0
|
|
||||||
* added fcron's option "-s" to control the time between two saves of
|
|
||||||
the fcrontabs on disk.
|
|
||||||
* installation scripts now support better FreeBSD and sh.
|
|
||||||
* bug corrected: configure's options prefix and without-sendmail used
|
|
||||||
not to work.
|
|
||||||
* bug corrected: installing an fcrontab by "fcrontab file" wasn't
|
|
||||||
working correctly with a relative path (a path not beginning by a
|
|
||||||
"/").
|
|
||||||
|
|
||||||
From version 0.9.4 to 0.9.5
|
|
||||||
* 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).
|
|
||||||
* 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.
|
|
||||||
* 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.
|
|
||||||
* better handle of changes of the uids of users in /etc/passwd (no
|
|
||||||
more need to reinstall the fcrontabs).
|
|
||||||
* fcron.deny and fcron.allow files are now owned by root (they used
|
|
||||||
to be owned by user fcron).
|
|
||||||
* 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).
|
|
||||||
* added option --with-rootname and --with-rootgroup to ./configure
|
|
||||||
script for a better support of exotic systems.
|
|
||||||
* 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.
|
|
||||||
|
|
||||||
From version 0.9.3 to 0.9.4
|
|
||||||
* 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?
|
|
||||||
* 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).
|
|
||||||
* 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).
|
|
||||||
* fcron now adds the host name to the addresses of the mails it
|
|
||||||
sends.
|
|
||||||
* 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".
|
|
||||||
* bug fixed: a tmp file was not removed after a "fcron -z"
|
|
||||||
* bug fixed in fcrontab: an expression of the form "start-stop" with
|
|
||||||
start > stop used to be incorrectly managed by fcron.
|
|
||||||
* 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.
|
|
||||||
* bug fixed: while fcrontab was asking user if he would like to
|
|
||||||
correct an erroneous line, the answer was not correctly handled.
|
|
||||||
|
|
||||||
From version 0.9.2.1 to 0.9.3
|
|
||||||
* installation scripts improved.
|
|
||||||
* added code to avoid infinite loops.
|
|
||||||
* bugs corrected in the functions to set the time and date of next
|
|
||||||
execution.
|
|
||||||
* bug corrected in the check for invalid lines.
|
|
||||||
|
|
||||||
From version 0.9.2 to 0.9.2.1
|
|
||||||
* minor bug corrected in Makefile
|
|
||||||
|
|
||||||
From version 0.9.1 to 0.9.2
|
|
||||||
* fcron now uses autoconf (the configure script), so it should be
|
|
||||||
easier to compile and install it and various systems.
|
|
||||||
* 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).
|
|
||||||
* a job can now be executed several times simultaneously if option
|
|
||||||
exesev is set to 1.
|
|
||||||
* user can determine if a job can be put several times in the serial
|
|
||||||
queue simultaneously thanks to option serialonce.
|
|
||||||
* fcron does not wait anymore for the completion of all jobs of a
|
|
||||||
file before deleting it from memory.
|
|
||||||
* fcron handles correctly the jobs which are both serial and lavg.
|
|
||||||
* fcron now runs under a specific user and group (other than root)
|
|
||||||
for basic security reasons.
|
|
||||||
* bug corrected: fcron used to crash after a file was deleted from
|
|
||||||
memory in some conditions.
|
|
||||||
* 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.
|
|
||||||
* 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.
|
|
||||||
* bug corrected: fcrontab now defines correctly the remain value of a
|
|
||||||
line based on time and date beginning with a "&" but without
|
|
||||||
runfreq definition.
|
|
||||||
* bug corrected: fcron used to not install correctly a file edited if
|
|
||||||
a correction was made.
|
|
||||||
* bug corrected: reset option was not working correctly when set to a
|
|
||||||
single line.
|
|
||||||
|
|
||||||
From version 0.9.0 to 0.9.1
|
|
||||||
* support of the option mailto for each line (it used to be set for
|
|
||||||
the whole file).
|
|
||||||
* 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.
|
|
||||||
* 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.
|
|
||||||
* fcron now uses putenv() in place of setenv() (setenv() is not POSIX
|
|
||||||
compliant).
|
|
||||||
* a mailto option set to "" is now equivalent to "mail(false)".
|
|
||||||
* 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.
|
|
||||||
* corrected the bug which used to make fcron crash after serial_array
|
|
||||||
is resized.
|
|
||||||
|
|
||||||
From version 0.8.3 to 0.9.0
|
|
||||||
* 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.
|
|
||||||
* 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.
|
|
||||||
* jobs can be run at system start up if they should have been run
|
|
||||||
during system down time (option "bootrun").
|
|
||||||
* root can run jobs as an another user (option "runas")
|
|
||||||
* user can set a nice value to a job, but only root can use a
|
|
||||||
negative value (a negative value will increase priority)
|
|
||||||
* user can choose to perform a logic AND or a logic OR between day of
|
|
||||||
month and day of week (option "dayor" and "dayand")
|
|
||||||
* 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").
|
|
||||||
* fixed the bug which used to make fcron run a job with a runfreq set
|
|
||||||
to 1 at a wrong time.
|
|
||||||
* fixed a bug which used to make fcrontab crash after several
|
|
||||||
corrections in edit mode.
|
|
||||||
|
|
||||||
From version 0.8.2 to 0.8.3
|
|
||||||
* (all this bugs appeared in version 0.8.2 :)
|
|
||||||
* fixed the bug which used to make fcron crash after a SIGHUP
|
|
||||||
* fixed the bug which used to prevent fcron from running some job
|
|
||||||
based on time and date
|
|
||||||
* fixed the bug which used to makes fcron run the jobs one second too
|
|
||||||
late
|
|
||||||
|
|
||||||
From version 0.8.1 to 0.8.2
|
|
||||||
* 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 :-) ...
|
|
||||||
* 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.
|
|
||||||
|
|
||||||
From version 0.8.0 to 0.8.1
|
|
||||||
* ported to FreeBSD 4.0
|
|
||||||
|
|
||||||
From version 0.7.0 to 0.8.0
|
|
||||||
* corrected the bug which keep normal users from listing and editing
|
|
||||||
their current configuration file with fcrontab -l or -e.
|
|
||||||
* 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.
|
|
||||||
* day of week 0 and 7 now both mean Sunday.
|
|
||||||
* the abbreviations of months and day of week are not any more case
|
|
||||||
dependent.
|
|
||||||
* months are now defined from 1 to 12 (and not from 0 to 11) (it was
|
|
||||||
a little bit illogical :-).
|
|
||||||
* you can now force spaces in strings if you place them in quotes.
|
|
||||||
* I discovered ispell :-) ...
|
|
||||||
* 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.
|
|
||||||
* You can now install a file with fcrontab from standard input.
|
|
||||||
* others minor adds and bug corrections.
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
Prev Home Next
|
|
||||||
How to install fcron Up Release notes: fcron 3.2.0
|
|
||||||
|
|
@ -1,344 +0,0 @@
|
||||||
#Fcron documentation Using fcron ... fcrondyn GNU GENERAL PUBLIC
|
|
||||||
LICENSE
|
|
||||||
|
|
||||||
Copyright © 2000-2014 Thibault Godouet Fcron 3.2.0 Web page :
|
|
||||||
http://fcron.free.fr
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
Fcron documentation
|
|
||||||
Prev Chapter 2. Using fcron ... Next
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
2.2. Frequently Asked Questions
|
|
||||||
|
|
||||||
This FAQ intends to complement the man pages by following a more
|
|
||||||
practical approach.
|
|
||||||
|
|
||||||
If you think a QA should be added, please mail me it!
|
|
||||||
|
|
||||||
2.2.1. How does fcron handle system clock adjustments?
|
|
||||||
2.2.2. How does fcron handle daylight saving time changes?
|
|
||||||
2.2.3. What about fcron and software suspend (aka. suspend to RAM, to
|
|
||||||
disk)?
|
|
||||||
|
|
||||||
2.2.4. How can I prevent fcrontab from considering the first "word" of
|
|
||||||
my command line as a user name i.e. "runas(word)"?
|
|
||||||
|
|
||||||
2.2.5. I have a job which usually terminates with a non-zero status.
|
|
||||||
When it does, I receive a email with the exit status even if the
|
|
||||||
command had no output. How can I avoid the email?
|
|
||||||
|
|
||||||
2.2.6. What does "loadavg" mean anyway?
|
|
||||||
2.2.7. How can I use fcrontab in scripts?
|
|
||||||
2.2.8. Can I use fcron from time to time, for instance in a script?
|
|
||||||
2.2.9. Can I run fcron without root's privileges?
|
|
||||||
2.2.10. Has fcron some incompatibilities with Vixie cron?
|
|
||||||
2.2.11. How can I emulate an anacron entry?
|
|
||||||
2.2.12. How can I emulate a Vixie cron @reboot entry?
|
|
||||||
|
|
||||||
2.2.1. How does fcron handle system clock adjustments?
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
2.2.2. How does fcron handle daylight saving time changes?
|
|
||||||
|
|
||||||
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).
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
2.2.3. What about fcron and software suspend (aka. suspend to RAM, to disk)?
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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).
|
|
||||||
|
|
||||||
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).
|
|
||||||
|
|
||||||
2.2.4. How can I prevent fcrontab from considering the first "word" of my
|
|
||||||
command line as a user name i.e. "runas(word)"?
|
|
||||||
|
|
||||||
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)".
|
|
||||||
|
|
||||||
To avoid that, put your command in quotes:
|
|
||||||
* * * * * 'echo "Hello!"'
|
|
||||||
|
|
||||||
will work as expected as quotes are allowed for the shell command but
|
|
||||||
not for the user name.
|
|
||||||
|
|
||||||
2.2.5. I have a job which usually terminates with a non-zero status. When it
|
|
||||||
does, I receive a email with the exit status even if the command had no
|
|
||||||
output. How can I avoid the email?
|
|
||||||
|
|
||||||
You could disable email entirely by setting the "mail" option to "no".
|
|
||||||
But, if you still want to receive the standard output as email, 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:
|
|
||||||
* * * * * /a/non/zero/status/job ; /bin/true
|
|
||||||
|
|
||||||
2.2.6. What does "loadavg" mean anyway?
|
|
||||||
|
|
||||||
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;
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
The load average formula is:
|
|
||||||
loadavg(d,n) = active_task_cnt - (active_task_cnt - old_loadavg)*(1/exp(d/n)
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
2.2.7. How can I use fcrontab in scripts?
|
|
||||||
|
|
||||||
You can use pipes with "fcrontab -l" (list the fcrontab) and "fcrontab
|
|
||||||
-" (read the new fcrontab from input). For example:
|
|
||||||
echo -e "`fcrontab -l | grep -v exim`\n0 * * * * /usr/sbin/exim -q" | fcr
|
|
||||||
ontab -
|
|
||||||
|
|
||||||
can be used to add a line. Another way to do it would be to: list the
|
|
||||||
fcrontab settings into a temporary file ("fcrontab -l > tmpfile");
|
|
||||||
modify the temporary file ("echo $LINE >> tmpfile"); replace the
|
|
||||||
original fcrontab by the temporary; and finally, remove the temporary
|
|
||||||
file ("fcrontab tmpfile ; rm -f tmpfile").
|
|
||||||
|
|
||||||
2.2.8. Can I use fcron from time to time, for instance in a script?
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
Example 2-5. Using fcron in a script: running a job once every day,
|
|
||||||
week, etc, at dialup connection
|
|
||||||
|
|
||||||
You can use a script like:
|
|
||||||
# A ppp-up script ...
|
|
||||||
# run the jobs pending, then returns:
|
|
||||||
fcron -f -y -o
|
|
||||||
|
|
||||||
in conjunction with a fcrontab file like:
|
|
||||||
# a fcrontab file ...
|
|
||||||
%random(no),weekly,stdout * * /a/command/to/download/latest/mozilla/release
|
|
||||||
%monthly,stdout * * * /update/junkbuster/config/files
|
|
||||||
|
|
||||||
You can also use fcron to run some jobs until the end of the
|
|
||||||
connection. For instance, you can make fetchmail retrieve emails 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.
|
|
||||||
|
|
||||||
Example 2-6. Using fcron in a script: running a job until the end of
|
|
||||||
the connection
|
|
||||||
|
|
||||||
ppp-up script:
|
|
||||||
# A ppp-up script ...
|
|
||||||
# run fcron at the beginning of the connection:
|
|
||||||
fcron -b
|
|
||||||
|
|
||||||
ppp-down script:
|
|
||||||
# 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
|
|
||||||
|
|
||||||
the fcrontab:
|
|
||||||
# a fcrontab file ...
|
|
||||||
@volatile,first(0) 5 fetchmail
|
|
||||||
|
|
||||||
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 --configfile.
|
|
||||||
|
|
||||||
For more details, see fcron's command line arguments --once,
|
|
||||||
--nosyslog, --sleeptime and --configfile in fcron(8), and fcrontab's
|
|
||||||
options volatile, stdout, first in fcrontab(5)
|
|
||||||
|
|
||||||
2.2.9. Can I run fcron without root's privileges?
|
|
||||||
|
|
||||||
Yes, you can. To do that, see the following instructions, but please
|
|
||||||
note that fcrondyn currently does *not* work without root privileges.
|
|
||||||
|
|
||||||
1. First, create a directory where you'll install fcron, and some
|
|
||||||
subdirectories:
|
|
||||||
|
|
||||||
bash$ mkdir /home/thib/fcron
|
|
||||||
bash$ cd /home/thib/fcron
|
|
||||||
bash$ mkdir doc man spool
|
|
||||||
|
|
||||||
2. Then, run configure with option --with-run-non-privileged, set all
|
|
||||||
user names and groups to yours, and set appropriately the paths:
|
|
||||||
|
|
||||||
Warning
|
|
||||||
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 YOU SHOULD NOT RUN
|
|
||||||
FCRON AS A PRIVILEGED USER WHEN COMPILED WITH THIS OPTION or you'll
|
|
||||||
have a serious security hole.
|
|
||||||
|
|
||||||
bash$ ./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
|
|
||||||
|
|
||||||
The rest of the installation is described in the install file.
|
|
||||||
|
|
||||||
2.2.10. Has fcron some incompatibilities with Vixie cron?
|
|
||||||
|
|
||||||
As far as I know, fcron supports Vixie cron's crontab syntax fully. You
|
|
||||||
should be able to use a crontab with fcron with no modification (if not
|
|
||||||
please contact me at <fcron@free.fr>).
|
|
||||||
|
|
||||||
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
|
|
||||||
does not do that by itself. Fcron does not support the /etc/cron.d/
|
|
||||||
directory either, as it is just an extension to the /etc/crontab file.
|
|
||||||
However /etc/cron.{daily,weekly,monthly} directories will work in fcron
|
|
||||||
just fine: they are supported through the run-parts program, just as
|
|
||||||
Vixie cron).
|
|
||||||
|
|
||||||
So if you want to replace Vixie cron by fcron transparently, all you
|
|
||||||
have to do is create a /usr/bin/crontab link to /usr/bin/fcrontab, and
|
|
||||||
reinstall the system (f)crontab with 'fcrontab /etc/crontab' every time
|
|
||||||
you modify it (if you needed some more work than that, please let me
|
|
||||||
know!).
|
|
||||||
|
|
||||||
You can also use the script script/check_system_crontabs to monitor for
|
|
||||||
system (f)crontab changes, i.e. changes to /etc/(f)crontab and
|
|
||||||
/etc/cron.d/. When it detects a change, it will generate a new system
|
|
||||||
fcrontab, and install it automatically. Should you choose to use that
|
|
||||||
script, please 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 fcron's behavior should be very
|
|
||||||
similar to Vixie cron regarding /etc/crontab and /etc/cron.d/.
|
|
||||||
|
|
||||||
2.2.11. How can I emulate an anacron entry?
|
|
||||||
|
|
||||||
As anacron, fcron does not assume that the system runs permanently.
|
|
||||||
Thus, fcron features similar functionalities to anacron, but it has
|
|
||||||
different means to achieve it, in other words other ways to define when
|
|
||||||
a job should run. Fcron is in general much more flexible than anacron.
|
|
||||||
The best thing to do is to have look at fcrontab(5), and choose the
|
|
||||||
type of line which is the most appropriate for your needs (this is
|
|
||||||
likely to be a @-line or a %-line).
|
|
||||||
|
|
||||||
On a Debian/Ubuntu, the default /etc/anacrontab looks like:
|
|
||||||
|
|
||||||
1 5 cron.daily nice run-parts --report /etc/cron.daily
|
|
||||||
7 10 cron.weekly nice run-parts --report /etc/cron.weekly
|
|
||||||
@monthly 15 cron.monthly nice run-parts --report /etc/cron.monthly
|
|
||||||
|
|
||||||
A close fcron equivalent would be (see serial):
|
|
||||||
|
|
||||||
# Run once a day/week/month, and ensure only one of those tasks is run at a time
|
|
||||||
:
|
|
||||||
!reset
|
|
||||||
!serial,nice(10)
|
|
||||||
%daily * * run-parts --report /etc/cron.daily
|
|
||||||
%weekly * * run-parts --report /etc/cron.weekly
|
|
||||||
%monthly * * * run-parts --report /etc/cron.monthly
|
|
||||||
|
|
||||||
Or you could go for something a bit more specific (see lavg,
|
|
||||||
noticenotrun):
|
|
||||||
|
|
||||||
# Only run the tasks out of office-hours when the system load is low
|
|
||||||
# and send an email to the user if fcron couldn't run the job:
|
|
||||||
!reset
|
|
||||||
!serial,lavg(0.5,1,1.5),noticenotrun,nice(10),mailto(admin@yourdomain.com)
|
|
||||||
%daily * 0-9,18-23 run-parts --report /etc/cron.daily
|
|
||||||
%weekly * 0-9,18-23 run-parts --report /etc/cron.weekly
|
|
||||||
%monthly * 0-9,18-23 * run-parts --report /etc/cron.monthly
|
|
||||||
|
|
||||||
Also, if you do want to emulate an anacron entry of the form:
|
|
||||||
0 delay job-identity /your/command
|
|
||||||
|
|
||||||
then you can use something as:
|
|
||||||
@runonce delay /your/command
|
|
||||||
|
|
||||||
2.2.12. How can I emulate a Vixie cron @reboot entry?
|
|
||||||
|
|
||||||
No need to emulate any more, as Vixie cron shortcuts, including
|
|
||||||
@reboot, are now supported by fcron!
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
Prev Home Next
|
|
||||||
fcrondyn Up GNU GENERAL PUBLIC LICENSE
|
|
||||||
|
|
@ -1,356 +0,0 @@
|
||||||
#Fcron documentation Frequently Asked Questions GNU Free Documentation
|
|
||||||
License
|
|
||||||
|
|
||||||
Copyright © 2000-2014 Thibault Godouet Fcron 3.2.0 Web page :
|
|
||||||
http://fcron.free.fr
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
Fcron documentation
|
|
||||||
Prev Next
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
Appendix A. GNU GENERAL PUBLIC LICENSE
|
|
||||||
|
|
||||||
Table of Contents
|
|
||||||
0. PREAMBLE
|
|
||||||
1. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
||||||
How to use this License for your documents
|
|
||||||
|
|
||||||
Version 2, June 1991
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
0. PREAMBLE
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow.
|
|
||||||
|
|
||||||
1. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
||||||
|
|
||||||
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".
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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:
|
|
||||||
|
|
||||||
* a) You must cause the modified files to carry prominent notices
|
|
||||||
stating that you changed the files and the date of any change.
|
|
||||||
|
|
||||||
* 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.
|
|
||||||
|
|
||||||
* 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.)
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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:
|
|
||||||
|
|
||||||
* 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,
|
|
||||||
|
|
||||||
* 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,
|
|
||||||
|
|
||||||
* 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.)
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
|
||||||
be a consequence of the rest of this License.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
NO WARRANTY
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
How to use this License for your documents
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
one line to give the program's name and an idea of what it does.
|
|
||||||
Copyright (C) yyyy 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.
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper
|
|
||||||
mail.
|
|
||||||
|
|
||||||
If the program is interactive, make it output a short notice like this
|
|
||||||
when it starts in an interactive mode:
|
|
||||||
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.
|
|
||||||
|
|
||||||
The hypothetical commands `show w' and `show c' should show the
|
|
||||||
appropriate parts of the General Public License. Of course, the
|
|
||||||
commands you use may be called something other than `show w' and `show
|
|
||||||
c'; they could even be mouse-clicks or menu items--whatever suits your
|
|
||||||
program.
|
|
||||||
|
|
||||||
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:
|
|
||||||
|
|
||||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
|
||||||
program `Gnomovision' (which makes passes at compilers) written by
|
|
||||||
James Hacker.
|
|
||||||
|
|
||||||
signature of Ty Coon, 1 April 1989 Ty Coon, President of Vice
|
|
||||||
|
|
||||||
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.
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
Prev Home Next
|
|
||||||
Frequently Asked Questions GNU Free Documentation License
|
|
||||||
|
|
@ -1,115 +0,0 @@
|
||||||
#Fcron documentation Fcron: how and why? About fcron Changes
|
|
||||||
|
|
||||||
Copyright © 2000-2014 Thibault Godouet Fcron 3.2.0 Web page :
|
|
||||||
http://fcron.free.fr
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
Fcron documentation
|
|
||||||
Prev Chapter 1. Fcron: how and why? Next
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
1.2. How to install fcron
|
|
||||||
|
|
||||||
1.2.1. Compilation requirements
|
|
||||||
|
|
||||||
* A C compiler (e.g. gcc)
|
|
||||||
* (optional) readline development library (e.g. libreadline-dev)
|
|
||||||
* (optional) PAM development library (e.g. libpam0g-dev)
|
|
||||||
* (optional) SE Linux development library (e.g. libselinux1-dev)
|
|
||||||
* (optional) Linux audit development library (e.g. libaudit-dev)
|
|
||||||
* If compiling from git checkout (rather than a tarball), then no
|
|
||||||
generated file will be included out of the box, so you will need
|
|
||||||
more tools to generate them. In particular the ./configure script
|
|
||||||
and the documentation will be generated from the sources.
|
|
||||||
+ git
|
|
||||||
+ autoconf
|
|
||||||
+ docbook
|
|
||||||
+ docbook-xsl
|
|
||||||
+ docbook-xml
|
|
||||||
+ docbook-util
|
|
||||||
+ manpages-dev
|
|
||||||
|
|
||||||
1.2.2. Compilation and installation instructions
|
|
||||||
|
|
||||||
* uncompress the archive:
|
|
||||||
|
|
||||||
bash$ tar -xzf fcron-X.Y.Z.src.tar.gz
|
|
||||||
|
|
||||||
* cd to the archive directory
|
|
||||||
|
|
||||||
bash$ cd fcron-X.Y.Z
|
|
||||||
|
|
||||||
* run the configure script:
|
|
||||||
|
|
||||||
bash$./configure
|
|
||||||
|
|
||||||
+ If you can't see a ./configure, then you probably checked out
|
|
||||||
the files from git, in which case you need to run autoconf to
|
|
||||||
generate the configure script.
|
|
||||||
+ If using PAM, beware that by default the PAM configuration
|
|
||||||
will be installed in /usr/local/etc/. That most likely mean
|
|
||||||
that your system won't use this config, and may ask you to
|
|
||||||
type your password everytime you start fcrontab or fcrondyn.
|
|
||||||
The simplest way to avoid this is to instruct configure to use
|
|
||||||
/etc instead with:
|
|
||||||
|
|
||||||
bash$ ./configure --sysconfdir=/etc
|
|
||||||
|
|
||||||
+ You may also want to change the place where fcron will be
|
|
||||||
installed: you can use the configure 's option --prefix to do
|
|
||||||
that. For instance:
|
|
||||||
|
|
||||||
bash$ ./configure --prefix=/usr--sysconfdir=/etc
|
|
||||||
|
|
||||||
(default is prefix=/usr/local and sysconfdir=${prefix}/etc).
|
|
||||||
+ To disable the use of PAM, SE Linux or fcrondyn, use
|
|
||||||
configure's option --with-pam=no, --with-selinux=no and/or
|
|
||||||
--with-fcrondyn=no.
|
|
||||||
+ The command make install asks you by default some questions
|
|
||||||
you have to answer. To avoid that (which can be useful for
|
|
||||||
automatic installers), you can use the ./configure's option
|
|
||||||
--with-answer-all and/or --with-boot-install (see "./configure
|
|
||||||
--help" for more details).
|
|
||||||
+ To debug fcron, you should use configure 's option
|
|
||||||
--with-debug.
|
|
||||||
+ You can get info on the others configure 's options by running
|
|
||||||
"./configure --help".
|
|
||||||
|
|
||||||
Warning
|
|
||||||
+ The configure script may not define a correct directory for
|
|
||||||
the man pages and the documentation on some systems. You may
|
|
||||||
check the values defined by configure and if necessary force a
|
|
||||||
value by the options --mandir and -with-docdir (see the help
|
|
||||||
by running "./configure --help").
|
|
||||||
+ If you get older fcron's man-pages with man command after
|
|
||||||
having upgraded, it's probably because fcron has changed its
|
|
||||||
default man directory: you should remove manually the outdated
|
|
||||||
man-pages.
|
|
||||||
+ The Makefile has been designed for GNU make. Some other
|
|
||||||
version of make may fail to use it.
|
|
||||||
|
|
||||||
* (optional) check the file config.h, and change it if necessary (the
|
|
||||||
configurable part is on the top of the file and clearly delimited).
|
|
||||||
* compile:
|
|
||||||
|
|
||||||
bash$ make
|
|
||||||
|
|
||||||
* then install binaries as root:
|
|
||||||
|
|
||||||
bash$ su root
|
|
||||||
|
|
||||||
bash# make install
|
|
||||||
|
|
||||||
You can now run fcron and fcrontab.
|
|
||||||
|
|
||||||
* This is a POSIX conforming software. You must have a POSIX compiler
|
|
||||||
(gcc for example) in order to compile it.
|
|
||||||
* This software has been written for GNU/Linux systems. If you want
|
|
||||||
to port it on an other Unix platform (thank you if you do it), try
|
|
||||||
to modify - if possible - only the configure script. Please send me
|
|
||||||
any modifications at <fcron@free.fr> in order to include it in
|
|
||||||
future releases.
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
Prev Home Next
|
|
||||||
About fcron Up Changes
|
|
||||||
|
|
@ -1,110 +0,0 @@
|
||||||
#Fcron documentation Fcron: how and why? Fcron: how and why? How to
|
|
||||||
install fcron
|
|
||||||
|
|
||||||
Copyright © 2000-2014 Thibault Godouet Fcron 3.2.0 Web page :
|
|
||||||
http://fcron.free.fr
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
Fcron documentation
|
|
||||||
Prev Chapter 1. Fcron: how and why? Next
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
1.1. About fcron
|
|
||||||
|
|
||||||
1.1.1. What is fcron?
|
|
||||||
|
|
||||||
Fcron is a scheduler. It aims at replacing Vixie Cron, so it implements
|
|
||||||
most of its functionalities.
|
|
||||||
|
|
||||||
But contrary to Vixie Cron, 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
|
|
||||||
anacrontab).
|
|
||||||
|
|
||||||
In other words, fcron does both the job of Vixie Cron and anacron, but
|
|
||||||
does even more and better :)) ...
|
|
||||||
|
|
||||||
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:
|
|
||||||
|
|
||||||
Run the task 'save /home/ directory' every 3h15 of system up time.
|
|
||||||
|
|
||||||
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:
|
|
||||||
|
|
||||||
run that command once between 2am and 5am
|
|
||||||
|
|
||||||
which will be done if the system is running at any time in this
|
|
||||||
interval.
|
|
||||||
|
|
||||||
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:
|
|
||||||
|
|
||||||
* run jobs one by one (fcrontab option serial),
|
|
||||||
* set the max system load average value under which the job should be
|
|
||||||
run (fcrontab option lavg),
|
|
||||||
* set a nice value for a job (fcrontab option nice),
|
|
||||||
* run jobs at fcron's startup if they should have been run during
|
|
||||||
system down time (fcrontab option bootrun),
|
|
||||||
* mail user to tell him a job has not run and why (fcrontab option
|
|
||||||
noticenotrun),
|
|
||||||
* a better management of the mailing of outputs ...
|
|
||||||
|
|
||||||
1.1.2. License
|
|
||||||
|
|
||||||
Fcron is distributed under GPL license (please read the license in the
|
|
||||||
gpl file).
|
|
||||||
|
|
||||||
1.1.3. Requirements
|
|
||||||
|
|
||||||
* a Linux/Unix system
|
|
||||||
Fcron should work on every POSIX system, but it has been developed
|
|
||||||
on Mandrake Linux (so it should work without any problems on
|
|
||||||
Redhat).
|
|
||||||
Fcron has been reported to work correctly on:
|
|
||||||
+ Linux Mandrake
|
|
||||||
+ Linux Debian 3.0
|
|
||||||
+ LFS
|
|
||||||
(take a look at the Beyond LFS book to find the installation
|
|
||||||
informations).
|
|
||||||
+ FreeBSD 4.2
|
|
||||||
+ OpenBSD 2.8
|
|
||||||
+ NetBSD 2.0
|
|
||||||
+ Darwin/MacOS-X
|
|
||||||
+ Solaris 8
|
|
||||||
+ AIX 4.3.3
|
|
||||||
+ HP-UX 11.11
|
|
||||||
but fcron should work on other OS as well. Yet, if you have
|
|
||||||
troubles making it work on a POSIX system, please contact me at
|
|
||||||
<fcron@free.fr>.
|
|
||||||
* a running syslog (or you won't have any log)
|
|
||||||
* a running mail system ( sendmail or postfix for example) (or users
|
|
||||||
will not able to read their jobs output)
|
|
||||||
* (optional) a PAM library.
|
|
||||||
* (optional) a system with a working SE Linux environment.
|
|
||||||
|
|
||||||
1.1.4. Compilation and installation
|
|
||||||
|
|
||||||
See the install file (either install.txt or install.html).
|
|
||||||
|
|
||||||
1.1.5. Configuration
|
|
||||||
|
|
||||||
See the fcron(8), fcrontab(5) and fcrontab(1) manpages.
|
|
||||||
|
|
||||||
1.1.6. Bug reports, corrections, propositions...
|
|
||||||
|
|
||||||
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 <fcron@free.fr>
|
|
||||||
|
|
||||||
Please contact Russell Coker directly for problems about SE Linux
|
|
||||||
support at <russell@coker.com.au>, since he maintains this part of the
|
|
||||||
code.
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
Prev Home Next
|
|
||||||
Fcron: how and why? Up How to install fcron
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
#Fcron documentation Fcron: how and why? Changes Todo
|
|
||||||
|
|
||||||
Copyright © 2000-2014 Thibault Godouet Fcron 3.2.0 Web page :
|
|
||||||
http://fcron.free.fr
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
Fcron documentation
|
|
||||||
Prev Chapter 1. Fcron: how and why? Next
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
1.4. Release notes: fcron 3.2.0
|
|
||||||
|
|
||||||
* Nothing special to be aware of in this release.
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
Prev Home Next
|
|
||||||
Changes Up Todo
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
||||||
#Fcron documentation Fcron: how and why? Todo Using fcron ...
|
|
||||||
|
|
||||||
Copyright © 2000-2014 Thibault Godouet Fcron 3.2.0 Web page :
|
|
||||||
http://fcron.free.fr
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
Fcron documentation
|
|
||||||
Prev Chapter 1. Fcron: how and why? Next
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
1.6. Thanks
|
|
||||||
|
|
||||||
Uwe Ohse <uwe@ohse.de>
|
|
||||||
Corrected a bug concerning the signals, has reported security
|
|
||||||
issues.
|
|
||||||
|
|
||||||
Max Heijndijk <cchq@wanadoo.nl>
|
|
||||||
Has made the rpm packages.
|
|
||||||
|
|
||||||
Gabor Z. Papp <gzp@papp.hu>
|
|
||||||
Helped to correct some bugs in installation process and reported
|
|
||||||
various bugs.
|
|
||||||
|
|
||||||
Clemens Fischer <rabat@web.de>
|
|
||||||
Proofread docs, reported bugs, and made some propositions.
|
|
||||||
|
|
||||||
Henrique de Moraes Holschuh <hmh@debian.org>
|
|
||||||
Has worked on fcron's integration in Linux Debian system,
|
|
||||||
reported bugs and corrected some of them, made some
|
|
||||||
propositions.
|
|
||||||
|
|
||||||
Thomas Whateley <thomas@whateley.net>
|
|
||||||
Has done a big part of Solaris port, implemented the fcron.conf
|
|
||||||
file, and Vixie crontab format support.
|
|
||||||
|
|
||||||
Guy Geens <ggeens@iname.com>
|
|
||||||
Fixed a nasty bug in goto_non_matching() which caused an endless
|
|
||||||
loop (midmonthly jobs executed after the 15th of the month).
|
|
||||||
|
|
||||||
Patrick Ohly <Patrick.Ohly@gmx.de>
|
|
||||||
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.
|
|
||||||
|
|
||||||
Russell Coker <russell@coker.com.au>
|
|
||||||
Helped me to secure fcron, make code clearer, and he wrote the
|
|
||||||
patch for SE Linux support.
|
|
||||||
|
|
||||||
Alain Portal
|
|
||||||
Initial French translation of the manual pages.
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
Prev Home Next
|
|
||||||
Todo Up Using fcron ...
|
|
||||||
|
|
@ -1,99 +0,0 @@
|
||||||
#Fcron documentation Fcron: how and why? Release notes: fcron 3.2.0
|
|
||||||
Thanks
|
|
||||||
|
|
||||||
Copyright © 2000-2014 Thibault Godouet Fcron 3.2.0 Web page :
|
|
||||||
http://fcron.free.fr
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
Fcron documentation
|
|
||||||
Prev Chapter 1. Fcron: how and why? Next
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
1.5. Todo
|
|
||||||
|
|
||||||
Here are some things that should be done ... Note that some of these
|
|
||||||
entries are just some ideas, which may be done in the long run.
|
|
||||||
|
|
||||||
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 ;) .
|
|
||||||
|
|
||||||
If you plan to help me, please send a mail at <fcron@free.fr> 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 ;) .
|
|
||||||
|
|
||||||
1.5.1. High priority
|
|
||||||
|
|
||||||
* Option to compile and install from git sources without generating
|
|
||||||
the doc
|
|
||||||
* register in OS suspend/hibernate mechanism to stop fcron when going
|
|
||||||
to sleep and start it again when resuming from sleep (see FAQ
|
|
||||||
entry).
|
|
||||||
*
|
|
||||||
|
|
||||||
1.5.2. Low priority
|
|
||||||
|
|
||||||
* Add unit tests using some unit-test framework (turn the tests/*
|
|
||||||
code into unit tests)
|
|
||||||
* For environment settings, make a var substitution.
|
|
||||||
* add a mailsubject option, for custom mail subjects (for instance,
|
|
||||||
in case of a job containing something secret -- password, etc -- in
|
|
||||||
the command line).
|
|
||||||
* Use directory notifications (FAM) / inotify, and support a fcrontab
|
|
||||||
and a cron.d as Vixie cron does (directly included in fcron itself,
|
|
||||||
not thanks to a script as now). However the parsing work is done by
|
|
||||||
fcrontab, and should probably keep on being done by fcrontab for
|
|
||||||
security and stability reasons: have fcron call fcrontab to do that
|
|
||||||
job?
|
|
||||||
* could be worth checking fcron for memory leaks using specialized
|
|
||||||
library (just in case...)
|
|
||||||
* option to put a maximum limit on the execution time of a task +
|
|
||||||
terminate it if not finished yet + send email to let the user know
|
|
||||||
* setting to limit the number of jobs of a single user in the
|
|
||||||
serialq/lavgq to X jobs + make sure root always has Y slots that it
|
|
||||||
can use in those queues (i.e. number of slots used by root + number
|
|
||||||
of free slots >= Y)
|
|
||||||
* Test (and use ?) docbook2x-man -- xlstproc ? cf
|
|
||||||
http://antoine.ginies.free.fr/docbook/ch09.html
|
|
||||||
* find way to have the non translated pages of the French translation
|
|
||||||
be updated automatically (changes, todo, etc -> copied from the
|
|
||||||
English doc)
|
|
||||||
* add a return code for jobs which would mean that they should not be
|
|
||||||
run again (in case of an error, etc...).
|
|
||||||
* PAM support (included in fcron, but needs more tests by people
|
|
||||||
using PAM - not implemented in fcrondyn: is it needed in fcrondyn
|
|
||||||
anyway?)
|
|
||||||
* support for per user serial queue (especially for root)
|
|
||||||
|
|
||||||
1.5.3. Ideas
|
|
||||||
|
|
||||||
* 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.).
|
|
||||||
* (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.
|
|
||||||
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?
|
|
||||||
* add an option/module to prevent fcron from running a job if the
|
|
||||||
system is running on battery (anacron does it?)
|
|
||||||
* Add a way to stop a job (SIGSTOP) if the lavg gets to high, and
|
|
||||||
restart it (SIGCONT) when the lavg has decreased.
|
|
||||||
* 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)
|
|
||||||
_______________________________________________________________________
|
|
||||||
|
|
||||||
Prev Home Next
|
|
||||||
Release notes: fcron 3.2.0 Up Thanks
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue