[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