Для занятий нам приходится работать на удаленном сервере, который находится в школе. До сих пор я сделал много файлов на сервере, и я хотел бы создать их резервную копию на случай, если я захочу перенести их на свой ноутбук или если я случайно удалю каталог или совершу глупую ошибку. Я нашел учебник и сценарий для резервного копирования файла, и я решил изменить его, чтобы он определял, в каком каталоге он находится (который будет основным пользователем) и компакт-диск с документами. Он также создает резервные копии каталога, если он не существует. Я все еще довольно новичок в такого рода сценариях, и любые дополнительные советы или ссылки на публикации будут очень признательны.
Код:
#!/bin/bash
#######################################################
## Simple backup script..
## Created by Matthew Brunt: ([email protected])
## Licensed under GNU GPL v3 or later, at your option.
## http://www.gnu.org/licenses/gpl.html
##
## Further edited by Michael Garrison to backup the
## directory it is located in and print the contents.
#######################################################
mkdir -p Backup
#Defines our output file
OUTPUT= $( cd Backup && pwd )/backup_$(date +%Y%m%d).tar.gz
#Defines our directory to backup
BUDIR=$( cd Desktop && pwd )
#Display message about starting the backup
echo "Starting backup of directory $BUDIR to file $OUTPUT"
#Start the backup
tar -cZf $OUTPUT $BUDIR
#Checking the status of the last process:
if [ $? == 0 ]; then
#Display confirmation message
echo "The file:"
echo $OUTPUT
echo "was created as a backup for:"
echo $BUDIR
echo ""
echo "Items that were backed up include:"
for i in $BUDIR; do
echo $i
done
echo ""
else
#Display error message message
echo "There was a problem creating:"
echo $OUTPUT
echo "as a backup for:"
echo $BUDIR
fi
Я знаю, что исходный скрипт работает, и он работал, пока я не изменил переменную $OUTPUT
. В настоящее время я получаю следующий результат:
./backup.sh
./backup.sh: line 15: /Users/mgarrison93/Backup/backup_20121004.tar.gz: No such file
or directory
Starting backup of directory /Users/mgarrison93/Desktop to file
tar: no files or directories specified
There was a problem creating:
as a backup for:
/Users/mgarrison93/Desktop
Я вижу, что он не принимает имя файла, но я не знаю, как это исправить.
Я только что попытался изменить $OUTPUT
на /Backups/file-name.tar.gz
, который у меня был изначально, и он отлично работает. Проблема, кажется, $( cd Backup && pwd )/backup_$(date +%Y%m%d).tar.gz
. Просто не уверен, что не так.
OUTPUT=
, это что-нибудь даст? (Если это исправит, я опубликую ответ, объясняющий, почему) - person David Z   schedule 04.10.2012