когда я запускаю команды по отдельности, кажется, что они делают то, что написано на коробке, однако, как только я испачкал их своим ужасным кодом, что-то пошло не так...
Скрипт работал до того, как я добавил сжатие файлов и право собственности.
Код: Выделить всё
#!/bin/bash
compress_backup() { tar -zcvf $FOLDER.tar.gz $FOLDER; }
change_ownership() { sudo chown $EXECUTOR:$EXECUTOR; }
EXECUTOR="${SUDO_USER:-${USER}}"
date=$(date '+%d-%m-%Y-%H:%M')
if [ -d "backup-$date" ]; then
FOLDER="backup-$date-2"
else
mkdir "backup-$date" && FOLDER="backup-$date"
fi
# Paths to be backed up...
paths=(/var/www/html /var/log /etc/apache2 /etc/ssh)
for path in "${paths[@]}"
do
sudo cp -r "$path" "$FOLDER"
echo "copied... $path"
done
echo -e "files backed up to $FOLDER \n"
echo "Would you like to compress the backup? 'yes' or 'no'?"
read INPUT
if [ "$INPUT" = yes ]; then
echo "Changing ownership of $FOLDER"
if [[ change_ownership ]]; then
echo "Ownership aquired for $EXECUTOR..."
else
echo "Ownership could not be aquired!"
exit 1
fi
echo "Compressing backup..."
if [[ compress_backup ]]; then
echo "$FOLDER.tar.gz has been created..."
echo "Backup completed successfully!"
exit 0
else
echo "Something went wrong whilst running compression!"
exit 1
fi
elif [ "$INPUT" = no ]; then
echo -e "Not compressing $FOLDER... \n"
echo "Backup Completed!"
exit 0
else
echo "Unrecognized input, exiting..."
exit 1
fi
Должен ли я вообще использовать цикл для копирования каталогов или мне следует просто написать функцию и для этого?
Логичный ли мой код? что бы вы изменили?
Любая помощь в этом вопросе будет очень признательна! У меня мало времени, так что вы сэкономите мне драгоценные часы =)
Я пробовал менять коды выхода.
Скрипт работал до того, как я добавил сжатие файлов и право собственности
Подробнее здесь: https://stackoverflow.com/questions/787 ... kup-script