Сценарий резервного копирования на сервере [закрыто]

Я использую серверную версию Ubuntu 12.10. Теперь мне нужен скрипт, который будет делать резервную копию Samba Share на USB-накопитель, подключенный к серверу, а также генерировать резервную копию журнала с форматом файла журнала, содержащим имя файла, размер и время

Также подтвердите настройки Crontab

Заранее спасибо

1
задан 19 April 2016 в 09:24

2 ответа

Если Вы не имеете установленными rsync, устанавливают их

sudo apt-get install rsync

, Создают сценарий backup_script.sh

#!/bin/bash

# Script to backup personal files to the external USB drive.
# Specify the mount point here (DO NOT end mount_point with a forward-slash).
mount_point='/mnt/'

echo "#####"
echo ""
# Check whether target volume is mounted, and mount it if not.
if ! mountpoint -q ${mount_point}/; then
    echo "Mounting the external USB drive."
    echo "Mountpoint is ${mount_point}"
    if ! mount ${mount_point}; then
        echo "An error code was returned by mount command!"
        exit 5
    else echo "Mounted successfully.";
    fi
else echo "${mount_point} is already mounted.";
fi
# Target volume **must** be mounted by this point. If not, die screaming.
if ! mountpoint -q ${mount_point}/; then
    echo "Mounting failed! Cannot run backup without backup volume!"
    exit 1
fi

echo "Preparing to transfer differences using rsync."

# Use the year to create a new backup directory each year.
current_year=`date +%Y`
# Now construct the backup path, specifying the mount point followed by the path
# to our backup directory, finishing with the current year.
# (DO NOT end backup_path with a forward-slash.)
backup_path=${mount_point}'/rsync-backup/'${current_year}

echo "Backup storage directory path is ${backup_path}"

echo "Starting backup of /home/XXX/Pictures . . . "
mkdir --parents ${backup_path}/Pictures
# This time use the -a flag with the tee command, so that it appends to the end
# of the rsync-output.txt file rather than start a new file from scratch.
sudo rsync --archive --verbose --human-readable --itemize-changes --progress --no-o --no-g \
--delete --delete-excluded \
/home/XXX/Pictures/ ${backup_path}/Pictures/ 2>&1 | tee -a /home/XXX/rsync-output.txt


echo ""
echo "####"

, который необходимо изменить

  • точка монтирования расширения USB - в примере, который я использую /mnt/
  • путь к папке, которую Вы хотите скопировать - в exampl, к которому я использую /home/XXX/Pictures
  • место записать файл журнала - в примере, который я использую /home/XXX/

, Дают полномочие на исполнение сценария

chmod +x /path_to_script/backup_script.sh

Установка crontab для выполнения этой команды на каждом x, промежуток времени

Для редактирования crontab работает

crontab -e

Для выполнения команды на каждых 5 минимальных кодах,

*/5 * * * * /path_to_script/backup_script.sh

на каждом часе

0 */1 * * * /path_to_script/backup_script.sh

для работы 4:00

0 4 * * * /path_to_script/backup_script.sh

Optionaly, можно отправить файл журнала в почту с кроном Установки команды

mail -s "SMB backup" your@mail.com < /path_to_log/rsync-output.txt

, чтобы сделать для Вас

0 4 * * * mail -s "SMB backup" your@mail.com < /path_to_log/rsync-output.txt
0
ответ дан 19 April 2016 в 19:24

Существуют различные пакеты, которые можно использовать для резервных копий. Я лично использую rsnapshot, который инкапсулирует rsync.

Там у Вас есть некоторый конфигурационный файл, где можно указать все пожелания.

0
ответ дан 19 April 2016 в 19:24

Другие вопросы по тегам:

Похожие вопросы: