Опишу небольшой скрипт для резервного копирования данных и общий ход его применения. Для начала создадим файл, в котором будет хранится скрипт:
# touch backup
Делаем его исполняемым:
# chmod 700 backup
Добавляем в файл команды. Так как скрипт будет запускаться по crontab, в котором нет переменной окружения $PATH, то прописываем полные пути к нужным файлам.
#!/bin/sh
FILE="/etc /usr/local/etc /usr/home /var/db/mysql"
NAME=`/bin/date '+%Y%m%d'`
tar -cPzf /mnt/backup/${NAME}.tar.gz ${FILE}
Теперь пояснения к скрипту. В переменной FILE задаются пути к папкам подлежащим копированию. Переменная NAME задает вид имени будущего архива. В данном случае имя будет состоять из года, месяца и дня в который осуществляется копирование. Примерный вид — 20101128.tar.gz.
В последней строчке команде tar указывается с помощью ключей, что файлы нужно не только объединить, но и сжать. Затем указывается путь КУДА записывать архив /mnt/backup/${NAME}.tar.gz и ОТКУДА копировать ${FILE}.
Остается последний штрих — внести выполнение данного скрипта в расписание. Для этого вызываем команду crontab -e и вписываем следующую строчку:
#backup
20 4 * * 7 /usr/home/scripts/backup
В данном примере скрипт будет запускаться каждую субботу в 4 часа 20 минут.