1

Я должен сделать запланированное резервное копирование баз данных серверов, используя 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 ответ1

0

Вы можете использовать задания Cron для запуска скрипта каждую минуту, а не только в назначенное время. Первое поле для минут.

Если вы указываете * в этом поле, оно запускается каждую минуту:

* * * * * /home/user/script.sh

Если вы укажете */5 в 1-м поле, оно будет выполняться каждые 5 минут:

*/5 * * * * /home/user/script.sh

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .