[pve-devel] [RFC manager 14/15] pveupdate: replace cron job with systemd timer

Fabian Grünbichler f.gruenbichler at proxmox.com
Tue Mar 6 12:11:17 CET 2018


On Wed, Jan 24, 2018 at 02:12:39PM +0100, Thomas Lamprecht wrote:
> Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
> ---
>  bin/init.d/Makefile                 |  2 ++
>  bin/init.d/pve-daily-update.service |  9 +++++++++
>  bin/init.d/pve-daily-update.timer   | 10 ++++++++++
>  debian/postinst                     | 15 ++-------------
>  4 files changed, 23 insertions(+), 13 deletions(-)
>  create mode 100644 bin/init.d/pve-daily-update.service
>  create mode 100644 bin/init.d/pve-daily-update.timer
> 
> diff --git a/bin/init.d/Makefile b/bin/init.d/Makefile
> index 45180244..f0fc7f9c 100644
> --- a/bin/init.d/Makefile
> +++ b/bin/init.d/Makefile
> @@ -11,6 +11,8 @@ SERVICES=			\
>  	pveproxy.service 	\
>  	spiceproxy.service	\
>  	pve-storage.target	\
> +	pve-daily-update.service\
> +	pve-daily-update.timer	\
>  	pvesr.service		\
>  	pvesr.timer
>  
> diff --git a/bin/init.d/pve-daily-update.service b/bin/init.d/pve-daily-update.service
> new file mode 100644
> index 00000000..f174241f
> --- /dev/null
> +++ b/bin/init.d/pve-daily-update.service
> @@ -0,0 +1,9 @@
> +[Unit]
> +Description=Daily PVE download activities
> +After=network-online.target
> +Wants=network-online.target
> +
> +[Service]
> +Type=oneshot
> +ExecStart=/usr/bin/pveupdate
> +
> diff --git a/bin/init.d/pve-daily-update.timer b/bin/init.d/pve-daily-update.timer
> new file mode 100644
> index 00000000..bf8d0b54
> --- /dev/null
> +++ b/bin/init.d/pve-daily-update.timer
> @@ -0,0 +1,10 @@
> +[Unit]
> +Description=Daily PVE download activities
> +
> +[Timer]
> +OnCalendar=*-*-* 2:00
> +RandomizedDelaySec=4h
> +Persistent=true
> +
> +[Install]
> +WantedBy=timers.target
> diff --git a/debian/postinst b/debian/postinst
> index 5d67732a..42e0f085 100755
> --- a/debian/postinst
> +++ b/debian/postinst
> @@ -32,24 +32,13 @@ case "$1" in
>  
>      mkdir /etc/pve 2>/dev/null || true
>  
> -    # remove old cron.daily update job to randomize it
> -    if test -e /etc/cron.daily/pve; then
> -	echo "Remove old update script from cron.daily"
> -	rm /etc/cron.daily/pve
> -    fi
> +    # remove cron update job, superseeded by systemd timer
> +    rm -f /etc/cron.d/pveupdate

would also put this into a versioned-if under a note about when to
remove it.

>  
>      # remove old/usused init.d files
>      OLD_INITD_FILES="pvebanner pvenetcommit pve-manager pvedaemon pveproxy pvestatd spiceproxy"
>      for f in ${OLD_INITD_FILES}; do rm -f "/etc/init.d/$f"; done
>  
> -    # create new daily randomize update cronjob if not exist
> -    MIN="$(shuf -i 0-59 -n 1)"
> -    HOUR="$(shuf -i 2-5 -n 1)"
> -    cat <<EOF >/etc/cron.d/pveupdate
> -# automatically generated - do not edit
> -${MIN} ${HOUR} * * * root /usr/bin/pveupdate
> -EOF
> -
>      if test ! -e /var/lib/pve-manager/apl-info/download.proxmox.com; then
>  	mkdir -p /var/lib/pve-manager/apl-info
>  	cp /usr/share/doc/pve-manager/aplinfo.dat /var/lib/pve-manager/apl-info/download.proxmox.com
> -- 
> 2.14.2
> 
> 
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel




More information about the pve-devel mailing list