[packages/logrotate] setup own cronjob instead of fixed cron.daily
glen
glen at pld-linux.org
Thu Aug 29 16:38:21 CEST 2013
commit 287810e70f03859208cd32d2144baf2e02ce00fc
Author: Elan Ruusamäe <glen at delfi.ee>
Date: Thu Aug 29 17:30:27 2013 +0300
setup own cronjob instead of fixed cron.daily
this allows more flexible time configuration of logrotate job
logrotate.cron | 4 +++-
logrotate.crontab | 4 ++++
logrotate.spec | 26 ++++++++++++++++++--------
3 files changed, 25 insertions(+), 9 deletions(-)
---
diff --git a/logrotate.spec b/logrotate.spec
index e8485ea..e4356a3 100644
--- a/logrotate.spec
+++ b/logrotate.spec
@@ -28,6 +28,7 @@ Source0: https://fedorahosted.org/releases/l/o/logrotate/%{name}-%{version}.tar.
Source1: %{name}.conf
Source2: %{name}.sysconfig
Source3: %{name}.cron
+Source4: %{name}.crontab
Patch1: %{name}-man.patch
Patch2: tabooext.patch
URL: https://fedorahosted.org/logrotate/
@@ -44,6 +45,7 @@ Suggests: /bin/mail
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define statdir /var/lib/misc
+%define _libexecdir %{_prefix}/lib
%description
The logrotate utility is designed to simplify the administration of
@@ -128,23 +130,30 @@ Logrotate призначений для полегшення адміністр
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/etc/{cron.daily,logrotate.d,sysconfig} \
- $RPM_BUILD_ROOT{%{_mandir},%{statdir}}
+install -d $RPM_BUILD_ROOT/etc/{cron.d,logrotate.d,sysconfig} \
+ $RPM_BUILD_ROOT{%{_libexecdir},%{_mandir},%{statdir}}
%{__make} install \
BINDIR=$RPM_BUILD_ROOT%{_sbindir} \
MANDIR=$RPM_BUILD_ROOT%{_mandir}
cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.conf
-cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/logrotate
-install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/cron.daily/logrotate
-> $RPM_BUILD_ROOT%{statdir}/logrotate.status
+cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
+install -p %{SOURCE3} $RPM_BUILD_ROOT%{_libexecdir}/%{name}
+cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/%{name}
+> $RPM_BUILD_ROOT%{statdir}/%{name}.status
%clean
rm -rf $RPM_BUILD_ROOT
+%triggerun -- %{name} < 3.8.6-1
+# if previous install had /etc/cron.daily/* files unlink (missingok), disable the cronjob
+if [ ! -e /etc/cron.daily/%{name} ]; then
+ echo DISABLE_LOGROTATE_CRON=yes >> /etc/sysconfig/%{name}
+fi
+
%triggerpostun -- %{name} < 3.7.8-4
-%{__sed} -i -e 's,olddir /var/log/archiv$,olddir /var/log/archive,' %{_sysconfdir}/logrotate.conf %{_sysconfdir}/logrotate.d/* || :
+%{__sed} -i -e 's,olddir /var/log/archiv$,olddir /var/log/archive,' %{_sysconfdir}/%{name}.conf %{_sysconfdir}/logrotate.d/* || :
%post
if [ -f /var/lib/logrotate.status ]; then
@@ -160,9 +169,10 @@ fi
%defattr(644,root,root,755)
%doc CHANGES
%attr(755,root,root) %{_sbindir}/logrotate
-%attr(750,root,root) /etc/cron.daily/logrotate
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.conf
+%attr(755,root,root) %{_libexecdir}/logrotate
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}.conf
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}
%attr(640,root,root) %ghost %{statdir}/logrotate.status
%{_mandir}/man5/logrotate.conf.5*
%{_mandir}/man8/logrotate.8*
diff --git a/logrotate.cron b/logrotate.cron
index 76a7a69..d80accd 100755
--- a/logrotate.cron
+++ b/logrotate.cron
@@ -1,5 +1,4 @@
#!/bin/sh
-
MAILTO=""
ARG=""
@@ -7,6 +6,9 @@ if [ -e /etc/sysconfig/logrotate ]; then
. /etc/sysconfig/logrotate
fi
+# NOTE: DISABLE_LOGROTATE_CRON is not official option to tune, it's only here to handle migration from < 3.8.6-1
+[ "$DISABLE_LOGROTATE_CRON" = "yes" ] && exit 0
+
/usr/sbin/logrotate $ARG /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
diff --git a/logrotate.crontab b/logrotate.crontab
new file mode 100644
index 0000000..ad15e57
--- /dev/null
+++ b/logrotate.crontab
@@ -0,0 +1,4 @@
+MAILTO=root
+
+# logrotate to run daily
+02 5 * * * root /usr/lib/logrotate
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/logrotate.git/commitdiff/287810e70f03859208cd32d2144baf2e02ce00fc
More information about the pld-cvs-commit
mailing list