diff --git a/update-cron.sh b/update-cron.sh index 4d17c29..a1e6581 100755 --- a/update-cron.sh +++ b/update-cron.sh @@ -6,6 +6,7 @@ flock 100 src=/srv/data/tsc-cloud/homepage/hugo-page dst=/srv/http/tsc/hugo +prod=/srv/data/tsc-cloud/homepage/production cmd="$SSH_ORIGINAL_COMMAND" # echo "$cmd" @@ -47,7 +48,18 @@ doPublishToStage() { } doPublishToProduction() { - rclone sync --stats 3s -c public/ ionos:/ +# This complicated two step publication is required to speed up the transfer. +# The sftp-based production server does not allow to use checksums. +# Hugo recreates all files with the time stamp at building. +# Thus, all files would be transmitted as the time has changed. +# To overcome this, the intermediate cache should have the same times as the upstream server. + echo "Syncing to intermediate stage" + rsync -rlpcv --delete --delete-delay public/ $prod/ + + echo "Syncing from intermediate stage to production web server" + rclone sync --stats 3s $prod/ ionos:/ + + echo "Cleaning up empty directories" rclone rmdirs ionos:/ }