Автоматическое монтирование USB-флеш-драйверов для удаленных серверов с использованием файла bash для запланированного резервного копирования
Я должен сделать запланированное резервное копирование баз данных серверов, используя cronjob для задачи резервного копирования и сценарий bash для операции резервного копирования. Это PHP веб-приложение. Вы можете сохранить файл резервной копии на жестком диске сервера или на внешнем USB-накопителе или жестком диске.
Пользователь добавляет задачу резервного копирования и редактирует ее из приложения веб-страницы, предназначенного для отображения всех сохраненных задач резервного копирования со всей их информацией:
сервер - база данных - таблицы - целевой сервер - целевое хранилище - день - час - минута
Все это сохраняется в файле XML и отображается в виде таблицы. Вы можете добавлять, редактировать или удалять задачи из этой таблицы на этой странице.
USB-накопители должны быть автоматически смонтированы на удаленных серверах, и приложение PHP должно затем сообщить пользователю, когда накопитель доступен для сохраненных задач с целевым хранилищем, равным usb.
У меня есть скрипт bash, который делает это, но вручную на одном сервере за раз. Я использую CentOS для гостей Virtual Box. Мой хост Virtual Box - Ubuntu, и я все еще начинающий. Мне нужна ваша помощь с командами.
В настоящее время у меня есть команда, которая получает имя USB (не его идентификатор), как это:
# Get USB stick count, name and size
dec_count=`fdisk -l | tr -s ' ' | grep 'Disk /' -c`
fdisk -l | tr -s ' ' | grep 'Disk /' | cut -f3 -d'/' | cut -f1 -d',' | sed -n "2,$dec_count p"
Это потому, что мне нужен уникальный идентификатор для каждого USB-накопителя, а не имя, которое ему дает Linux (например, sdb).
Тогда как мое PHP-приложение может узнать, есть ли доступный USB-накопитель? Должен ли cronjob сделать это или это должно быть сделано в PHP?
Я правильно воспринимаю эту проблему? Любые вспомогательные ссылки или советы приветствуются. Нужно сделать это быстро.
Заранее спасибо.
1 ответ
Вы можете использовать задания Cron для запуска скрипта каждую минуту, а не только в назначенное время. Первое поле для минут.
Если вы указываете * в этом поле, оно запускается каждую минуту:
* * * * * /home/user/script.sh
Если вы укажете */5 в 1-м поле, оно будет выполняться каждые 5 минут:
*/5 * * * * /home/user/script.sh