Может ли кто-нибудь объяснить, как мне зациклить следующую логику? Эта логика должна запускаться каждую неделю. Например: на 1-й неделе в исходной папке у меня есть файлы и папка с именем stack.txt, webmethods, profiles, поэтому, когда я запустил логику, все эти файлы были сохранены в папке назначения. На 2-й неделе в исходной папке был добавлен дополнительный каталог, например, Kafka, поэтому теперь, когда логика запускается, она не должна полностью сохранять резервную копию, а только недавно добавленные вещи... например, инкрементное резервное копирование.
#!/bin/bash
# What to backup.
Integrationserver="/home/ec2-user/source"
# Where to backup to.
dest="/home/ec2-user/destination"
# Create archive filename.
#date=$(date +%F)
IS=source
hostname=$(hostname -s)
#archive_file="$hostname-$IS-$date.tar.gz"
archive_file="$hostname-$IS.tar.gz"
# Print start status message.
echo "Backing up $Integrationserver to $dest/$archive_file"
date
echo
# Backup the files using tar.
tar --exclude=/home/ec2-user/source/logs* --exclude=/home/ec2-user/source/TC* -zcf $dest/$archive_file $Integrationserver
# Print end status message.
echo
echo "Backup finished"
date
решение1
Чтобы запустить его несколько раз в заданное время, вам следует использовать cron или его эквивалент в вашем дистрибутиве.
Что касается выполнения инкрементного копирования с помощью tar-файлов, вам нужно использовать --listed-incremental
Это немного сложнее, поэтому я приведу ссылку на статью, которая обобщает все это, чтобы мне не пришлось делать это самостоятельно.
https://linuxconfig.org/how-to-create-incremental-and-differential-backups-with-tar