Sync from SUSE:SLFO:Main cronie revision a670bc3e35e097aa7c2adbf999fdb95d
This commit is contained in:
commit
ff5f31cbd3
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
14
cron.service
Normal file
14
cron.service
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Command Scheduler
|
||||||
|
After=nss-user-lookup.target network.target time-sync.target
|
||||||
|
After=postfix.service sendmail.service exim.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/usr/sbin/cron -n
|
||||||
|
ExecReload=/usr/bin/kill -s SIGHUP $MAINPID
|
||||||
|
Restart=on-abort
|
||||||
|
KillMode=process
|
||||||
|
TasksMax=infinity
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
5
cron_to_cronie.README
Normal file
5
cron_to_cronie.README
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package cron 4.2 is only auxiliary package needed for proper renaming package cron to cronie
|
||||||
|
|
||||||
|
usefull links :
|
||||||
|
http://en.opensuse.org/Cron_replace
|
||||||
|
http://en.opensuse.org/Cron_rename
|
BIN
cronie-1.6.1.tar.gz
(Stored with Git LFS)
Normal file
BIN
cronie-1.6.1.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
13
cronie-crond_pid.diff
Normal file
13
cronie-crond_pid.diff
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Index: cronie-1.4.4/src/pathnames.h
|
||||||
|
===================================================================
|
||||||
|
--- cronie-1.4.4.orig/src/pathnames.h
|
||||||
|
+++ cronie-1.4.4/src/pathnames.h
|
||||||
|
@@ -41,7 +41,7 @@
|
||||||
|
# define PIDDIR SYSCONFDIR "/"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
-#define PIDFILE "crond.pid"
|
||||||
|
+#define PIDFILE "cron.pid"
|
||||||
|
#define _PATH_CRON_PID PIDDIR PIDFILE
|
||||||
|
#define REBOOT_LOCK PIDDIR "cron.reboot"
|
||||||
|
|
101
cronie-nheader_lines.diff
Normal file
101
cronie-nheader_lines.diff
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
Index: src/crontab.c
|
||||||
|
===================================================================
|
||||||
|
--- src/crontab.c.orig
|
||||||
|
+++ src/crontab.c
|
||||||
|
@@ -64,7 +64,7 @@
|
||||||
|
#include "pathnames.h"
|
||||||
|
#include "structs.h"
|
||||||
|
|
||||||
|
-#define NHEADER_LINES 0
|
||||||
|
+#define NHEADER_LINES 3
|
||||||
|
|
||||||
|
#define COMMENT_COLOR "\x1B[34;1m"
|
||||||
|
#define ERROR_COLOR "\x1B[31;1m"
|
||||||
|
@@ -418,7 +418,7 @@ static void parse_args(int argc, char *a
|
||||||
|
static void list_cmd(void) {
|
||||||
|
char n[MAX_FNAME];
|
||||||
|
FILE *f;
|
||||||
|
- int ch;
|
||||||
|
+ int ch, x;
|
||||||
|
const int colorize = isatty(STDOUT) && getenv("NO_COLOR") == NULL;
|
||||||
|
int new_line = 1;
|
||||||
|
int in_comment = 0;
|
||||||
|
@@ -439,6 +439,22 @@ static void list_cmd(void) {
|
||||||
|
/* file is open. copy to stdout, close.
|
||||||
|
*/
|
||||||
|
Set_LineNum(1);
|
||||||
|
+ /* ignore the top few comments since we probably put them there.
|
||||||
|
+ */
|
||||||
|
+ x = 0;
|
||||||
|
+ while (EOF != (ch = get_char(f))) {
|
||||||
|
+ if ('#' != ch) {
|
||||||
|
+ putchar(ch);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ while (EOF != (ch = get_char(f)))
|
||||||
|
+ if (ch == '\n')
|
||||||
|
+ break;
|
||||||
|
+ if (++x >= NHEADER_LINES)
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ /* copy the rest of the crontab (if any) to the stdout.
|
||||||
|
+ */
|
||||||
|
while (EOF != (ch = get_char(f))) {
|
||||||
|
if (colorize) {
|
||||||
|
if (!in_comment && new_line && ch == '#') {
|
||||||
|
@@ -533,7 +549,7 @@ static void edit_cmd(void) {
|
||||||
|
char n[MAX_FNAME], q[MAX_TEMPSTR];
|
||||||
|
const char *editor;
|
||||||
|
FILE *f;
|
||||||
|
- int ch = '\0', t;
|
||||||
|
+ int ch = '\0', t, x;
|
||||||
|
struct stat statbuf;
|
||||||
|
struct utimbuf utimebuf;
|
||||||
|
WAIT_T waiter;
|
||||||
|
@@ -585,10 +601,20 @@ static void edit_cmd(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
Set_LineNum(1);
|
||||||
|
- /*
|
||||||
|
- * NHEADER_LINES processing removed for clarity
|
||||||
|
- * (NHEADER_LINES == 0 in all Red Hat crontabs)
|
||||||
|
+ /* ignore the top few comments since we probably put them there.
|
||||||
|
*/
|
||||||
|
+ x = 0;
|
||||||
|
+ while (EOF != (ch = get_char(f))) {
|
||||||
|
+ if ('#' != ch) {
|
||||||
|
+ putc(ch, NewCrontab);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ while (EOF != (ch = get_char(f)))
|
||||||
|
+ if (ch == '\n')
|
||||||
|
+ break;
|
||||||
|
+ if (++x >= NHEADER_LINES)
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
/* copy the rest of the crontab (if any) to the temp file.
|
||||||
|
*/
|
||||||
|
if (EOF != ch)
|
||||||
|
@@ -812,6 +838,7 @@ static int replace_cmd(void) {
|
||||||
|
int ch, fd;
|
||||||
|
int error = 0;
|
||||||
|
uid_t file_owner;
|
||||||
|
+ time_t now = time(NULL);
|
||||||
|
char *safename;
|
||||||
|
|
||||||
|
safename = host_specific_filename("#tmp", "XXXXXXXXXX");
|
||||||
|
@@ -839,10 +866,10 @@ static int replace_cmd(void) {
|
||||||
|
*
|
||||||
|
* VERY IMPORTANT: make sure NHEADER_LINES agrees with this code.
|
||||||
|
*/
|
||||||
|
- /*fprintf(tmp, "# DO NOT EDIT THIS FILE - edit the master and reinstall.\n");
|
||||||
|
- *fprintf(tmp, "# (%s installed on %-24.24s)\n", Filename, ctime(&now));
|
||||||
|
- *fprintf(tmp, "# (Cron version %s)\n", CRON_VERSION);
|
||||||
|
- */
|
||||||
|
+ fprintf(tmp, "# DO NOT EDIT THIS FILE - edit the master and reinstall.\n");
|
||||||
|
+ fprintf(tmp, "# (%s installed on %-24.24s)\n", Filename, ctime(&now));
|
||||||
|
+ fprintf(tmp, "# (Cronie version %s)\n", CRON_VERSION);
|
||||||
|
+
|
||||||
|
#ifdef WITH_SELINUX
|
||||||
|
if (selinux_context)
|
||||||
|
fprintf(tmp, "SELINUX_ROLE_TYPE=%s\n", selinux_context);
|
20
cronie-pam_config.diff
Normal file
20
cronie-pam_config.diff
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
Index: cronie-cronie-1.5.4/pam/crond
|
||||||
|
===================================================================
|
||||||
|
--- cronie-cronie-1.5.4.orig/pam/crond
|
||||||
|
+++ cronie-cronie-1.5.4/pam/crond
|
||||||
|
@@ -4,8 +4,10 @@
|
||||||
|
#
|
||||||
|
# Although no PAM authentication is called, auth modules
|
||||||
|
# are used for credential setting
|
||||||
|
-auth include system-auth
|
||||||
|
-account required pam_access.so
|
||||||
|
-account include system-auth
|
||||||
|
-session required pam_loginuid.so
|
||||||
|
-session include system-auth
|
||||||
|
+auth sufficient pam_rootok.so
|
||||||
|
+account sufficient pam_listfile.so item=user sense=allow file=/etc/cron.allow onerr=succeed quiet
|
||||||
|
+auth include common-auth
|
||||||
|
+account include common-account
|
||||||
|
+password include common-password
|
||||||
|
+session optional pam_keyinit.so force revoke
|
||||||
|
+session include common-session
|
1478
cronie.changes
Normal file
1478
cronie.changes
Normal file
File diff suppressed because it is too large
Load Diff
252
cronie.spec
Normal file
252
cronie.spec
Normal file
@ -0,0 +1,252 @@
|
|||||||
|
#
|
||||||
|
# spec file for package cronie
|
||||||
|
#
|
||||||
|
# Copyright (c) 2022 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%define cron_configs %{_sysconfdir}/pam.d/crond %{_sysconfdir}/crontab %{_sysconfdir}/cron.deny
|
||||||
|
#Compat macro for new _fillupdir macro introduced in Nov 2017
|
||||||
|
%if ! %{defined _fillupdir}
|
||||||
|
%define _fillupdir %{_localstatedir}/adm/fillup-templates
|
||||||
|
%endif
|
||||||
|
Name: cronie
|
||||||
|
Version: 1.6.1
|
||||||
|
Release: 0
|
||||||
|
Summary: Cron Daemon
|
||||||
|
License: BSD-3-Clause AND GPL-2.0-only AND MIT
|
||||||
|
Group: System/Daemons
|
||||||
|
URL: https://github.com/cronie-crond/%{name}
|
||||||
|
Source0: https://github.com/cronie-crond/%{name}/archive/%{name}-%{version}.tar.gz
|
||||||
|
Source2: run-crons
|
||||||
|
Source3: sample.root
|
||||||
|
Source4: deny.sample
|
||||||
|
Source7: cron_to_cronie.README
|
||||||
|
Source8: cron.service
|
||||||
|
Source9: sysconfig.cron
|
||||||
|
# PATCH-FEATURE-OPENSUSE cronie-pam_config.diff added pam config file from old cron
|
||||||
|
Patch3: cronie-pam_config.diff
|
||||||
|
# openSUSE set NHEADER_LINES to 3 - old openSUSE cron put three lines of comments
|
||||||
|
# in top of crontab file, so we want to hide this junk comments if user edit
|
||||||
|
# crontab file with crontab -e command, patch grabbed from old openSUSE cron
|
||||||
|
Patch4: cronie-nheader_lines.diff
|
||||||
|
# we use cron.pid instead of crond.pid
|
||||||
|
Patch5: cronie-crond_pid.diff
|
||||||
|
# PATCH-FIX-SUSE the first occurance of "/etc/anacrontab" was replaced by "/etc/crontab"
|
||||||
|
# in manpage file because the /etc/crontab is still used in SUSE.
|
||||||
|
Patch13: fix-manpage-replace-anacrontab-with-crontab.patch
|
||||||
|
BuildRequires: audit-devel
|
||||||
|
BuildRequires: autoconf
|
||||||
|
BuildRequires: automake
|
||||||
|
BuildRequires: libselinux-devel
|
||||||
|
BuildRequires: pam-devel
|
||||||
|
BuildRequires: pkgconfig
|
||||||
|
BuildRequires: pkgconfig(systemd)
|
||||||
|
Requires: mail
|
||||||
|
Requires(post): %fillup_prereq
|
||||||
|
Requires(post): debianutils
|
||||||
|
Requires(post): permissions
|
||||||
|
Requires(pre): cron
|
||||||
|
Suggests: mailx
|
||||||
|
Conflicts: cron <= 4.1
|
||||||
|
%{?systemd_requires}
|
||||||
|
# This is needed as cron subpkg has its own version
|
||||||
|
%{expand: %%define cronie_version %{version}}
|
||||||
|
%if 0%{?suse_version} >= 1330
|
||||||
|
Requires(pre): group(trusted)
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description
|
||||||
|
cron automatically starts programs at specific times. Add new entries
|
||||||
|
with "crontab -e". (See "man 5 crontab" and "man 1 crontab" for
|
||||||
|
documentation.)
|
||||||
|
|
||||||
|
Under /etc, find the directories cron.hourly, cron.daily, cron.weekly,
|
||||||
|
and cron.monthly. Scripts and programs that are located there are
|
||||||
|
started automatically.
|
||||||
|
|
||||||
|
%package -n cron
|
||||||
|
Version: 4.2
|
||||||
|
Release: 0
|
||||||
|
Summary: Auxiliary package
|
||||||
|
Group: System/Daemons
|
||||||
|
Requires: %{name} = %{cronie_version}-%{release}
|
||||||
|
Requires(post): permissions
|
||||||
|
|
||||||
|
%description -n cron
|
||||||
|
Auxiliary package, needed for proper update from vixie-cron 4.1 to cronie 1.4.4
|
||||||
|
|
||||||
|
%package anacron
|
||||||
|
Summary: Utility for running regular jobs
|
||||||
|
Group: System/Base
|
||||||
|
Requires: %{name} = %{cronie_version}
|
||||||
|
|
||||||
|
%description anacron
|
||||||
|
Anacron becames part of cronie. Anacron is used only for running regular jobs.
|
||||||
|
The default settings execute regular jobs by anacron, however this could be
|
||||||
|
overloaded in settings.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -n %{name}-%{name}-%{cronie_version}
|
||||||
|
%patch3 -p1
|
||||||
|
%patch4
|
||||||
|
%patch5 -p1
|
||||||
|
cp %{SOURCE7} ./cron_to_cronie.README
|
||||||
|
%patch13 -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
# fill macro CRON_VERSION it is used in top three lines of crontab file,should be reworked
|
||||||
|
export CFLAGS="%{optflags} -DCRON_VERSION=\\\"%{version}\\\""
|
||||||
|
export LDFLAGS="-Wl,-z,relro,-z,now,-z,defs"
|
||||||
|
autoreconf -f -i
|
||||||
|
%configure \
|
||||||
|
--with-audit \
|
||||||
|
--enable-anacron \
|
||||||
|
--with-pam \
|
||||||
|
--with-selinux \
|
||||||
|
--with-inotify \
|
||||||
|
--enable-pie \
|
||||||
|
SPOOL_DIR="%{_localstatedir}/spool/cron/tabs"
|
||||||
|
%make_build
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install
|
||||||
|
mkdir -p -v %{buildroot}%{_localstatedir}/spool/cron/{tabs,lastrun}
|
||||||
|
mkdir -p -v %{buildroot}%{_sysconfdir}/cron.{d,hourly,daily,weekly,monthly}
|
||||||
|
install -v -m 600 %{SOURCE3} %{buildroot}%{_sysconfdir}/crontab
|
||||||
|
install -v -m 600 %{SOURCE4} %{buildroot}%{_sysconfdir}/cron.deny
|
||||||
|
install -v -d %{buildroot}%{_libexecdir}/cron
|
||||||
|
install -v %{SOURCE2} %{buildroot}%{_libexecdir}/cron
|
||||||
|
ln -s -f %{_sbindir}/service %{buildroot}%{_sbindir}/rccron
|
||||||
|
install -v -d %{buildroot}/%{_unitdir}
|
||||||
|
install -v -m 644 %{SOURCE8} %{buildroot}/%{_unitdir}
|
||||||
|
install -m 644 contrib/anacrontab %{buildroot}%{_sysconfdir}/anacrontab
|
||||||
|
install -c -m755 contrib/0anacron %{buildroot}%{_sysconfdir}/cron.hourly/0anacron
|
||||||
|
mkdir -p %{buildroot}%{_localstatedir}/spool/anacron
|
||||||
|
mv %{buildroot}%{_sbindir}/crond %{buildroot}%{_sbindir}/cron
|
||||||
|
mkdir -p %{buildroot}%{_fillupdir}
|
||||||
|
cp %{SOURCE9} %{buildroot}%{_fillupdir}/
|
||||||
|
|
||||||
|
mkdir -p %{buildroot}%{_sysconfdir}/cron.d
|
||||||
|
mkdir -p %{buildroot}%{_sysconfdir}/cron.hourly
|
||||||
|
mkdir -p %{buildroot}%{_sysconfdir}/cron.daily
|
||||||
|
mkdir -p %{buildroot}%{_sysconfdir}/cron.weekly
|
||||||
|
mkdir -p %{buildroot}%{_sysconfdir}/cron.monthly
|
||||||
|
|
||||||
|
touch %{buildroot}%{_localstatedir}/spool/anacron/cron.daily
|
||||||
|
touch %{buildroot}%{_localstatedir}/spool/anacron/cron.weekly
|
||||||
|
touch %{buildroot}%{_localstatedir}/spool/anacron/cron.monthly
|
||||||
|
|
||||||
|
%if 0%{?suse_version} > 1500
|
||||||
|
mkdir -p %{buildroot}%{_pam_vendordir}
|
||||||
|
mv %{buildroot}%{_sysconfdir}/pam.d/crond %{buildroot}%{_pam_vendordir}/
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%pre
|
||||||
|
%if 0%{?suse_version} > 1500
|
||||||
|
# Prepare for migration to /usr/etc; save any old .rpmsave
|
||||||
|
for i in pam.d/crond ; do
|
||||||
|
test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i}.rpmsave.old ||:
|
||||||
|
done
|
||||||
|
%endif
|
||||||
|
%service_add_pre cron.service
|
||||||
|
|
||||||
|
%post
|
||||||
|
%set_permissions %{_sysconfdir}/crontab %{_bindir}/crontab
|
||||||
|
%{fillup_only -n cron}
|
||||||
|
%service_add_post cron.service
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
%if 0%{?suse_version} > 1500
|
||||||
|
%posttrans
|
||||||
|
# Migration to /usr/etc, restore just created .rpmsave
|
||||||
|
for i in pam.d/crond ; do
|
||||||
|
test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i} ||:
|
||||||
|
done
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%verifyscript
|
||||||
|
%verify_permissions -e %{_sysconfdir}/crontab -e %{_bindir}/crontab
|
||||||
|
|
||||||
|
%preun
|
||||||
|
%service_del_preun cron.service
|
||||||
|
|
||||||
|
%postun
|
||||||
|
%service_del_postun cron.service
|
||||||
|
|
||||||
|
%post anacron
|
||||||
|
[ -e %{_localstatedir}/spool/anacron/cron.daily ] || touch %{_localstatedir}/spool/anacron/cron.daily
|
||||||
|
[ -e %{_localstatedir}/spool/anacron/cron.weekly ] || touch %{_localstatedir}/spool/anacron/cron.weekly
|
||||||
|
[ -e %{_localstatedir}/spool/anacron/cron.monthly ] || touch %{_localstatedir}/spool/anacron/cron.monthly
|
||||||
|
|
||||||
|
%verifyscript -n cron
|
||||||
|
%verify_permissions -e %{_sysconfdir}/cron.d/
|
||||||
|
%verify_permissions -e %{_sysconfdir}/cron.daily/
|
||||||
|
%verify_permissions -e %{_sysconfdir}/cron.hourly/
|
||||||
|
%verify_permissions -e %{_sysconfdir}/cron.monthly/
|
||||||
|
%verify_permissions -e %{_sysconfdir}/cron.weekly/
|
||||||
|
|
||||||
|
%post -n cron
|
||||||
|
%set_permissions %{_sysconfdir}/cron.d/
|
||||||
|
%set_permissions %{_sysconfdir}/cron.daily/
|
||||||
|
%set_permissions %{_sysconfdir}/cron.hourly/
|
||||||
|
%set_permissions %{_sysconfdir}/cron.monthly/
|
||||||
|
%set_permissions %{_sysconfdir}/cron.weekly/
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license COPYING
|
||||||
|
%doc AUTHORS README ChangeLog
|
||||||
|
%dir %attr(700,root,root) %{_localstatedir}/spool/cron
|
||||||
|
%dir %attr(700,root,root) %{_localstatedir}/spool/cron/tabs
|
||||||
|
%dir %{_localstatedir}/spool/cron/lastrun
|
||||||
|
%if 0%{?suse_version} > 1500
|
||||||
|
%{_pam_vendordir}/crond
|
||||||
|
%else
|
||||||
|
%config %{_sysconfdir}/pam.d/crond
|
||||||
|
%endif
|
||||||
|
%verify(not mode) %config(noreplace) %{_sysconfdir}/crontab
|
||||||
|
%config(noreplace) %{_sysconfdir}/cron.deny
|
||||||
|
%{_mandir}/man1/crontab.1%{?ext_man}
|
||||||
|
%{_mandir}/man5/crontab.5%{?ext_man}
|
||||||
|
%{_mandir}/man8/cron.8%{?ext_man}
|
||||||
|
%{_mandir}/man8/crond.8%{?ext_man}
|
||||||
|
%{_mandir}/man1/cronnext.1%{?ext_man}
|
||||||
|
%verify(not mode) %attr (4750,root,trusted) %{_bindir}/crontab
|
||||||
|
%attr (755,root,root) %{_sbindir}/cron
|
||||||
|
%attr (755,root,root) %{_bindir}/cronnext
|
||||||
|
%{_sbindir}/rccron
|
||||||
|
%{_libexecdir}/cron
|
||||||
|
%{_unitdir}/cron.service
|
||||||
|
%{_fillupdir}/sysconfig.cron
|
||||||
|
|
||||||
|
%files anacron
|
||||||
|
%{_sbindir}/anacron
|
||||||
|
%attr(0755,root,root) %{_sysconfdir}/cron.hourly/0anacron
|
||||||
|
%config(noreplace) %{_sysconfdir}/anacrontab
|
||||||
|
%dir %{_localstatedir}/spool/anacron
|
||||||
|
%ghost %verify(not md5 size mtime) %{_localstatedir}/spool/anacron/cron.daily
|
||||||
|
%ghost %verify(not md5 size mtime) %{_localstatedir}/spool/anacron/cron.weekly
|
||||||
|
%ghost %verify(not md5 size mtime) %{_localstatedir}/spool/anacron/cron.monthly
|
||||||
|
%{_mandir}/man5/anacrontab.5%{?ext_man}
|
||||||
|
%{_mandir}/man8/anacron.8%{?ext_man}
|
||||||
|
|
||||||
|
%files -n cron
|
||||||
|
%doc cron_to_cronie.README
|
||||||
|
%dir %attr(755,root,root) %{_sysconfdir}/cron.d
|
||||||
|
%dir %attr(755,root,root) %{_sysconfdir}/cron.hourly
|
||||||
|
%dir %attr(755,root,root) %{_sysconfdir}/cron.daily
|
||||||
|
%dir %attr(755,root,root) %{_sysconfdir}/cron.weekly
|
||||||
|
%dir %attr(755,root,root) %{_sysconfdir}/cron.monthly
|
||||||
|
|
||||||
|
%changelog
|
1
deny.sample
Normal file
1
deny.sample
Normal file
@ -0,0 +1 @@
|
|||||||
|
guest
|
27
fix-manpage-replace-anacrontab-with-crontab.patch
Normal file
27
fix-manpage-replace-anacrontab-with-crontab.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
From 8769bba06b1632c6bd275f88c0fd10f591efdb9b Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Krist=C3=BDna=20Streitov=C3=A1?= <kstreitova@suse.cz>
|
||||||
|
Date: Mon, 22 Sep 2014 10:41:14 +0200
|
||||||
|
Subject: [PATCH] fix manpage replace anacrontab with crontab
|
||||||
|
|
||||||
|
/etc/anacrontab replaced by /etc/crontab in the first occurance of it.
|
||||||
|
Fixes bnc#833240
|
||||||
|
---
|
||||||
|
man/cron.8 | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/man/cron.8 b/man/cron.8
|
||||||
|
index 633dbc0..9716f8f 100644
|
||||||
|
--- a/man/cron.8
|
||||||
|
+++ b/man/cron.8
|
||||||
|
@@ -53,7 +53,7 @@ for crontab files which are named after accounts in
|
||||||
|
The found crontabs are loaded into the memory.
|
||||||
|
.I Cron
|
||||||
|
also searches for
|
||||||
|
-.I /etc/anacrontab
|
||||||
|
+.I /etc/crontab
|
||||||
|
and any files in the
|
||||||
|
.I /etc/cron.d
|
||||||
|
directory, which have a different format (see
|
||||||
|
--
|
||||||
|
1.8.4.5
|
||||||
|
|
304
run-crons
Normal file
304
run-crons
Normal file
@ -0,0 +1,304 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# /usr/libexec/cron/run-crons
|
||||||
|
#
|
||||||
|
# Copyright (c) 1998-2001 SuSE GmbH Nuernberg, Germany. All rights reserved.
|
||||||
|
#
|
||||||
|
# this script looks into /etc/cron.{hourly,daily,weekly,monthly} for
|
||||||
|
# scripts to be executed. The info about last run is stored in
|
||||||
|
# /var/spool/cron/lastrun
|
||||||
|
#
|
||||||
|
# concept similar to debian and redhat
|
||||||
|
#
|
||||||
|
# Changes:
|
||||||
|
# 1998 - Burchard Steinbild <bs@suse.de>, 1998
|
||||||
|
# initial version
|
||||||
|
# before 2001 - va@org.chemie.uni-frankfurt.de
|
||||||
|
# send an email with name of date-script instead of cron entry
|
||||||
|
# "Subject: cronjob@www - daily - FAILURE"
|
||||||
|
# (better one script for each date-sub-script)
|
||||||
|
# requires changes to /etc/crontab
|
||||||
|
# append > /dev/null 2>&1 to the line calling run-cons
|
||||||
|
# 2001-09-11
|
||||||
|
# updated to Suse 7.2 merged
|
||||||
|
# 2001-09-12
|
||||||
|
# changed FAILURE detection, until now all scripts with output
|
||||||
|
# had "failed", now only scripts with error status != 0
|
||||||
|
# have failed.
|
||||||
|
# 2001-09-13 - ro@suse.de
|
||||||
|
# merged with 7.3: call logger with exit value for scripts
|
||||||
|
# respect MAILTO as cron does
|
||||||
|
# use mktemp -d for all tmpfiles
|
||||||
|
# add variable to disable mail if all jobs returned 0
|
||||||
|
# 2015-06-25 - jmatejek@suse.com
|
||||||
|
# bnc#812367 support MAILFROM as cron does
|
||||||
|
# 2016-08-08 - tchvatal@suse.com
|
||||||
|
# bnc#983925 run crons even on battery
|
||||||
|
# 2017-10-24 - jsegitz@suse.de
|
||||||
|
# bsc#1062722 - harden run-cron to ensure correct directory permissions
|
||||||
|
|
||||||
|
if [ -f /etc/sysconfig/cron ]; then
|
||||||
|
. /etc/sysconfig/cron
|
||||||
|
fi
|
||||||
|
|
||||||
|
BASENAME=`/usr/bin/basename $0`
|
||||||
|
LOGGER="/bin/logger -t $BASENAME[$$]"
|
||||||
|
|
||||||
|
export LC_TIME=POSIX
|
||||||
|
TMPDIR=`mktemp -d /tmp/run-crons.XXXXXX`
|
||||||
|
trap "rm -rf $TMPDIR" 0 1 2 3 13 15
|
||||||
|
|
||||||
|
# We will force to run cron.daily after 14 days, even
|
||||||
|
# if you set MAX_NOT_RUN in /etc/sysconfig/cron
|
||||||
|
# value is in minutes
|
||||||
|
MAX_NOT_RUN_FORCE="20160"
|
||||||
|
|
||||||
|
# Priority change for sub scripts.
|
||||||
|
# range: highest -20 ... 19 lowest prioriy
|
||||||
|
# default processes start in level 10
|
||||||
|
CRON_SCRIPT_NICE_VALUE=15
|
||||||
|
SPOOL=/var/spool/cron/lastrun
|
||||||
|
|
||||||
|
# CRON Result EMail is sent to
|
||||||
|
if [ -z "$MAILTO" ]; then
|
||||||
|
SEND_TO="root"
|
||||||
|
else
|
||||||
|
SEND_TO="$MAILTO"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$MAILFROM" ]; then
|
||||||
|
SEND_FROM="root"
|
||||||
|
else
|
||||||
|
SEND_FROM="$MAILFROM"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# XXX support external specification of $MAILER?
|
||||||
|
for POSSIBLE_MAILER in /usr/bin/mail /usr/lib/sendmail /usr/bin/mailx /usr/sbin/sendmail; do
|
||||||
|
test -x $POSSIBLE_MAILER && MAILER=$POSSIBLE_MAILER
|
||||||
|
done
|
||||||
|
if [ -z "$MAILER" ]; then
|
||||||
|
echo "Could not find suitable mailer."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
export MAIL_CONFIG
|
||||||
|
export MAILER
|
||||||
|
|
||||||
|
function send_email() {
|
||||||
|
SUBJECT="$1"; shift
|
||||||
|
TMP=`mktemp`
|
||||||
|
echo "Subject: $SUBJECT" > "$TMP"
|
||||||
|
echo "From: $SEND_FROM" >> "$TMP"
|
||||||
|
echo "To: $SEND_TO" >> "$TMP"
|
||||||
|
echo >> "$TMP"
|
||||||
|
cat "$@" >> "$TMP"
|
||||||
|
"$MAILER" -r "$SEND_FROM" "$SEND_TO" < "$TMP"
|
||||||
|
rm -f "$TMP"
|
||||||
|
}
|
||||||
|
|
||||||
|
mkdir -p $SPOOL
|
||||||
|
|
||||||
|
#set verbose
|
||||||
|
## stage 1, search directories/scripts to run
|
||||||
|
RUN=""
|
||||||
|
SECURE_PERMISSIONS="${SECURE_DIR_PERMISSIONS:-755}"
|
||||||
|
for CRONDIR in /etc/cron.{hourly,daily,weekly,monthly} ; do
|
||||||
|
test -d $CRONDIR || continue
|
||||||
|
# this is racy but better than nothing
|
||||||
|
if [ ! "$ENFORCE_ROOT_OWNER_GROUP_DIR" = "no" ] && [ ! -O $CRONDIR -o ! -G $CRONDIR ]; then
|
||||||
|
echo "wrong owner/group for $CRONDIR, skipping" | logger
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
ACTUAL_PERMISSIONS=$(stat -c %a $CRONDIR)
|
||||||
|
# to have this default to false would be better, but would require a more
|
||||||
|
# complicated logic in the loop
|
||||||
|
PERMISSIONS_ARE_SECURE=true
|
||||||
|
for (( i=0; i<${#ACTUAL_PERMISSIONS}; i++ )); do
|
||||||
|
if [ "${ACTUAL_PERMISSIONS:$i:1}" -gt "${SECURE_PERMISSIONS:$i:1}" ]; then
|
||||||
|
PERMISSIONS_ARE_SECURE=false
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ ! "$PERMISSIONS_ARE_SECURE" = true ]; then
|
||||||
|
echo "wrong permissions $ACTUAL_PERMISSIONS for $CRONDIR, expecting $SECURE_PERMISSIONS. Skipping" | logger
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
BASE=${CRONDIR##*/}
|
||||||
|
TIME_EXT=${BASE##cron.}
|
||||||
|
|
||||||
|
test -e $SPOOL/$BASE && {
|
||||||
|
case $BASE in
|
||||||
|
cron.hourly) TIME="-cmin +60 -or -cmin 60" ;;
|
||||||
|
cron.daily)
|
||||||
|
# if DAILY_TIME set, run only at a fixed time of day
|
||||||
|
if [ "$DAILY_TIME" != "" ] ; then
|
||||||
|
DAILY_TIME_NEW="`echo $DAILY_TIME | sed s,:,, | sed s,^0\*,, `"
|
||||||
|
test -z "$DAILY_TIME_NEW" && DAILY_TIME_NEW=0
|
||||||
|
if [ "$DAILY_TIME_NEW" -gt "2359" ] ; then
|
||||||
|
echo "wrong time format in /etc/sysconfig/cron DAILY_TIME, value is $DAILY_TIME" | logger
|
||||||
|
fi
|
||||||
|
NOW_H=`date +%H%M| sed s,^0\*,,`
|
||||||
|
test -z "$NOW_H" && NOW_H=0
|
||||||
|
if [ $DAILY_TIME_NEW -gt $(($NOW_H-15)) ] && [ $DAILY_TIME_NEW -le $NOW_H ]; then
|
||||||
|
TIME=""
|
||||||
|
else
|
||||||
|
# take care of MAX_NOT_RUN, default is 7 days
|
||||||
|
if [ "$MAX_NOT_RUN" != "0" ] ; then
|
||||||
|
TIME="-cmin +$((1440*$MAX_NOT_RUN)) -or -cmin $((1440*$MAX_NOT_RUN))"
|
||||||
|
else
|
||||||
|
TIME="-cmin +$MAX_NOT_RUN_FORCE -or -cmin $MAX_NOT_RUN_FORCE"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# run as usual
|
||||||
|
else
|
||||||
|
TIME="-cmin +1440 -or -cmin 1440"
|
||||||
|
fi ;;
|
||||||
|
cron.weekly) TIME="-cmin +10080 -or -cmin 10080" ;;
|
||||||
|
cron.monthly)
|
||||||
|
DAYOFMONTH=`date '+%d'`
|
||||||
|
DAYSLASTMONTH=`date -d "-$DAYOFMONTH days" '+%d'`
|
||||||
|
if [ $DAYOFMONTH -gt $DAYSLASTMONTH ] ; then
|
||||||
|
LASTMONTHSTR="-$DAYOFMONTH days"
|
||||||
|
else
|
||||||
|
LASTMONTHSTR="last month"
|
||||||
|
fi
|
||||||
|
NOW=`date +%s`
|
||||||
|
LASTMONTH=`date -d "$LASTMONTHSTR" +%s`
|
||||||
|
DIFF=`expr '(' $NOW - $LASTMONTH ')' / 86400`
|
||||||
|
TIME="-ctime +$DIFF"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# remove all lock files for scripts that are due to run
|
||||||
|
eval find $SPOOL/$BASE $TIME | \
|
||||||
|
xargs --no-run-if-empty rm
|
||||||
|
}
|
||||||
|
if test ! -e $SPOOL/$BASE ; then
|
||||||
|
# accept this dir, if it isn't empty
|
||||||
|
LIST=`find $CRONDIR ! -type d`
|
||||||
|
if [ ! -z "$LIST" ] ; then
|
||||||
|
RUN="${RUN} ${TIME_EXT}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
## STATUS communication variable between
|
||||||
|
# function run_scripts ()
|
||||||
|
# and loop-over-all-scripts
|
||||||
|
# set in run_scripts to FAILURE if this script failed!
|
||||||
|
# else it is empty
|
||||||
|
# because it is never reset to empty after the initialization
|
||||||
|
# it implements an OR like logic over all scripts
|
||||||
|
##
|
||||||
|
STATUS=""
|
||||||
|
|
||||||
|
# helper, run all scripts in one cron directory
|
||||||
|
function run_scripts (){
|
||||||
|
local CRONDIR=$1
|
||||||
|
local TIME_EXT=$2
|
||||||
|
|
||||||
|
|
||||||
|
local TEMP_MSG=$TMPDIR/run-crons.${TIME_EXT}.$$
|
||||||
|
rm -r $TMPDIR/run-crons.${TIME_EXT}.* >/dev/null 2>&1
|
||||||
|
|
||||||
|
# keep going when something fails
|
||||||
|
set +e
|
||||||
|
for SCRIPT in $CRONDIR/* ; do
|
||||||
|
test -d $SCRIPT && continue
|
||||||
|
case "$SCRIPT" in
|
||||||
|
.svn) continue ;;
|
||||||
|
*.rpm*) continue ;;
|
||||||
|
*.swap) continue ;;
|
||||||
|
*.bak) continue ;;
|
||||||
|
*.orig) continue ;;
|
||||||
|
\#*) continue ;;
|
||||||
|
*~) continue ;;
|
||||||
|
esac
|
||||||
|
if test -x $SCRIPT ; then
|
||||||
|
BASESCRIPT=`/usr/bin/basename $SCRIPT`
|
||||||
|
|
||||||
|
nice -n ${CRON_SCRIPT_NICE_VALUE} $SCRIPT >$TEMP_MSG 2>&1
|
||||||
|
|
||||||
|
local ERRNO=$?
|
||||||
|
if [ 0 -eq $ERRNO ] ; then
|
||||||
|
if [ "$SYSLOG_ON_NO_ERROR" = "yes" ]; then
|
||||||
|
echo "$BASESCRIPT: OK" | $LOGGER -p info
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "$BASESCRIPT returned $ERRNO" | $LOGGER -p warn
|
||||||
|
echo "SCRIPT: $BASESCRIPT exited with RETURNCODE = $ERRNO."
|
||||||
|
STATUS="FAILURE"
|
||||||
|
fi
|
||||||
|
# write some wrapper text around the original output
|
||||||
|
if [ -s "$TEMP_MSG" ] ; then
|
||||||
|
echo "SCRIPT: output (stdout && stderr) follows"
|
||||||
|
echo ""
|
||||||
|
cat $TEMP_MSG
|
||||||
|
echo -e "SCRIPT: $BASESCRIPT\n------- END OF OUTPUT"
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f $TEMP_MSG > /dev/null 2>&1
|
||||||
|
else
|
||||||
|
echo "WARNING: $SCRIPT is not executable, script is ignored !"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# stage 2:
|
||||||
|
# run all scripts and collect output into one mail
|
||||||
|
# for each TIME_EXT with a meaningfull subject.
|
||||||
|
#
|
||||||
|
if [ ! -z "${RUN}" ] ; then
|
||||||
|
for EXT in ${RUN} ; do
|
||||||
|
CRONDIR="/etc/cron."${EXT}
|
||||||
|
test -d $CRONDIR || continue
|
||||||
|
BASE=`/usr/bin/basename $CRONDIR`
|
||||||
|
TIME_EXT=${BASE##cron.}
|
||||||
|
STATUS=""
|
||||||
|
|
||||||
|
if test ! -e $SPOOL/$BASE ; then
|
||||||
|
CONTROL_MAIL=$TMPDIR/run-crons_mail.$$
|
||||||
|
JOB_OUTPUT=$TMPDIR/run-crons_output.$$
|
||||||
|
|
||||||
|
echo "running ${TIME_EXT} cronjob scripts" >> ${CONTROL_MAIL}
|
||||||
|
echo "" >> ${CONTROL_MAIL}
|
||||||
|
|
||||||
|
touch $SPOOL/$BASE
|
||||||
|
|
||||||
|
run_scripts ${CRONDIR} ${TIME_EXT} >> ${JOB_OUTPUT} 2>&1
|
||||||
|
TITLE="cronjob@$HOSTNAME - ${TIME_EXT}"
|
||||||
|
if [ -n "${STATUS}" ] ; then
|
||||||
|
TITLE="${TITLE} - ${STATUS}"
|
||||||
|
else
|
||||||
|
TITLE="${TITLE} - OK"
|
||||||
|
fi
|
||||||
|
if [ -n "${STATUS}" -o "$SEND_MAIL_ON_NO_ERROR" = "yes" ] ; then
|
||||||
|
send_email "$TITLE" "$CONTROL_MAIL" "$JOB_OUTPUT"
|
||||||
|
elif [ -s ${JOB_OUTPUT} -a "$SEND_OUTPUT_ON_NO_ERROR" = "yes" ] ; then
|
||||||
|
send_email "$TITLE" "$CONTROL_MAIL" "$JOB_OUTPUT"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f ${CONTROL_MAIL} ${JOB_OUTPUT}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# now make sure, we have no lastrun files dated to future
|
||||||
|
#
|
||||||
|
touch $SPOOL
|
||||||
|
NOW=`date -u +%s`
|
||||||
|
for i in `find $SPOOL -type f`
|
||||||
|
do
|
||||||
|
FILEDATE=`date -u -r $i +%s`
|
||||||
|
# allow for up to one hour in the future because of summer/wintertime
|
||||||
|
if [ $((FILEDATE - NOW)) -gt 3600 ]
|
||||||
|
then
|
||||||
|
rm $i
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
19
sample.root
Normal file
19
sample.root
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
SHELL=/bin/sh
|
||||||
|
PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
|
||||||
|
MAILTO=root
|
||||||
|
#
|
||||||
|
# check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly
|
||||||
|
|
||||||
|
# Example of job definition:
|
||||||
|
# .---------------- minute (0 - 59)
|
||||||
|
# | .------------- hour (0 - 23)
|
||||||
|
# | | .---------- day of month (1 - 31)
|
||||||
|
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
|
||||||
|
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
|
||||||
|
# | | | | |
|
||||||
|
# * * * * * user-name command to be executed
|
||||||
|
@hourly root run-parts /etc/cron.hourly
|
||||||
|
@daily root run-parts /etc/cron.daily
|
||||||
|
@weekly root run-parts /etc/cron.weekly
|
||||||
|
@monthly root run-parts /etc/cron.monthly
|
||||||
|
|
92
sysconfig.cron
Normal file
92
sysconfig.cron
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
## The Parameters MAX_DAYS_IN_TMP, MAX_DAYS_IN_LONG_TMP, TMP_DIRS_TO_CLEAR,
|
||||||
|
## LONG_TMP_DIRS_TO_CLEAR, CLEAR_TMP_DIRS_AT_BOOTUP and OWNER_TO_KEEP_IN_TMP have
|
||||||
|
## been converted to systemd-tmpfiles settings in /etc/tmpfiles.d/tmp.conf.
|
||||||
|
## Please check and modify to your needs.
|
||||||
|
## See 'man tmpfiles.d' for details.
|
||||||
|
|
||||||
|
|
||||||
|
## Type: string
|
||||||
|
## Default: ""
|
||||||
|
#
|
||||||
|
# At which time cron.daily should start. Default is 15 minutes after booting
|
||||||
|
# the system. Example setting would be "14:00".
|
||||||
|
# Due to the fact that cron script runs only every 15 minutes,
|
||||||
|
# it will only run on xx:00, xx:15, xx:30, xx:45, not at the accurate time
|
||||||
|
# you set.
|
||||||
|
DAILY_TIME=""
|
||||||
|
|
||||||
|
## Type: integer
|
||||||
|
## Default: 5
|
||||||
|
#
|
||||||
|
# Maximum days not running when using a fixed time set in DAILY_TIME.
|
||||||
|
# 0 to skip this. This is for users who will power off their system.
|
||||||
|
#
|
||||||
|
# There is a fixed max. of 14 days set, if you want to override this
|
||||||
|
# change MAX_NOT_RUN_FORCE in /usr/libexec/cron/run-crons
|
||||||
|
MAX_NOT_RUN="5"
|
||||||
|
|
||||||
|
## Type: yesno
|
||||||
|
## Default: no
|
||||||
|
#
|
||||||
|
# send status email even if all scripts in
|
||||||
|
# cron.{hourly,daily,weekly,monthly}
|
||||||
|
# returned without error? (yes/no)
|
||||||
|
#
|
||||||
|
SEND_MAIL_ON_NO_ERROR="no"
|
||||||
|
|
||||||
|
## Type: yesno
|
||||||
|
## Default: no
|
||||||
|
#
|
||||||
|
# send email containing output from all successful jobs in
|
||||||
|
# cron.{hourly,daily,weekly,monthly}. Output from failed
|
||||||
|
# jobs is always sent. If SEND_MAIL_ON_NO_ERROR is yes, this
|
||||||
|
# setting is ignored. (yes/no)
|
||||||
|
#
|
||||||
|
SEND_OUTPUT_ON_NO_ERROR="no"
|
||||||
|
|
||||||
|
## Type: yesno
|
||||||
|
## Default: no
|
||||||
|
#
|
||||||
|
# generate syslog message for all scripts in
|
||||||
|
# cron.{hourly,daily,weekly,monthly}
|
||||||
|
# even if they haven't returned an error? (yes/no)
|
||||||
|
#
|
||||||
|
SYSLOG_ON_NO_ERROR="no"
|
||||||
|
## Path: System/Cron/Man
|
||||||
|
## Description: cron configuration for man utility
|
||||||
|
## Type: yesno
|
||||||
|
## Default: yes
|
||||||
|
#
|
||||||
|
# Should mandb and whatis be recreated by cron.daily ("yes" or "no")
|
||||||
|
#
|
||||||
|
REINIT_MANDB=yes
|
||||||
|
|
||||||
|
## Type: yesno
|
||||||
|
## Default: yes
|
||||||
|
#
|
||||||
|
# Should old preformatted man pages (in /var/cache/man) be deleted? (yes/no)
|
||||||
|
#
|
||||||
|
DELETE_OLD_CATMAN=yes
|
||||||
|
|
||||||
|
## Type: integer
|
||||||
|
## Default: 7
|
||||||
|
#
|
||||||
|
# How long should old preformatted man pages be kept before deletion? (days)
|
||||||
|
#
|
||||||
|
CATMAN_ATIME=7
|
||||||
|
|
||||||
|
## Type: yesno
|
||||||
|
## Default: yes
|
||||||
|
#
|
||||||
|
# Force cron.{hourly,daily,weekly,monthly} to be
|
||||||
|
# owned by user and group root
|
||||||
|
#
|
||||||
|
ENFORCE_ROOT_OWNER_GROUP_DIR="yes"
|
||||||
|
|
||||||
|
## Type: integer
|
||||||
|
## Default: 755
|
||||||
|
#
|
||||||
|
# Force cron.{hourly,daily,weekly,monthly} to have
|
||||||
|
# at most the listed permissions
|
||||||
|
#
|
||||||
|
SECURE_DIR_PERMISSIONS="755"
|
Loading…
Reference in New Issue
Block a user