4

Я ищу автоматизированную систему резервного копирования и мне нравится Bacula. У меня есть 3 ноутбука и настольный компьютер, которые требуют регулярного резервного копирования. Теперь я не хочу позволить им бегать всю ночь только для резервного копирования, поэтому я подумал, что мог бы использовать wake-on-lan, чтобы bacula разбудил машины, затем сделал резервные копии и выключил их после этого. Хотя это может работать с устройствами в сети Ethernet, оно не будет работать с ноутбуками по Wi-Fi. Таким образом, возможно ли, чтобы расписания Ноутбуков автоматически просыпались от приостановки или выключения?

Или есть возможность прервать команду выключения, если она прошла через определенный час, и вызвать директора bacula, чтобы начать резервное копирование сейчас?

Я новичок в управлении системой Linux с помощью сценариев, поэтому любые советы о том, как и с чего начать, очень ценятся.

Большое спасибо за вашу помощь, вклад и идеи.

5 ответов5

2

Мой ответ не был перенесен с SO. Hunh.

Команда, которую вы, возможно, захотите найти, это apmsleep, хотя она может быть специфичной для Debian.

2

Так что это мое решение для резервного копирования, оно состоит из двух сценариев:

1.) Я заменил стандартный скрипт /usr /lib /hal /scripts /hal-system-power-suspend следующим кодом, чтобы каждый раз, когда компьютер переходит в спящий режим (например, закрывает крышку), он включался для резервного копирования:

#!/bin/sh

#Determine when to wake up computer
waketime="01:30"
waketimesec="0"

if [ `date --date=$waketime +%s` -gt `date +%s` ]
then
  echo today
  waketimesec=`date --date=$waketime +%s`
else
  echo tomorrow
  waketimesec=`date --date="tomorrow $waketime" +%s`
fi


#Determine switch sleep modus to choose
state=`cat /proc/acpi/ac_adapter/AC0/state | grep on-line`
if [ "$state" = '' ]
then
  echo Computer on battery mode
  sudo /usr/sbin/pm-suspend           
else
  echo Computer on AC mode
  sudo rtcwake -m mem -t $waketimesec

  state=`cat /proc/acpi/ac_adapter/AC0/state | grep on-line`
  if [ "$state" = '' ]
  then
  sudo /usr/sbin/pm-suspend
  fi
fi

Обратите внимание, что резервное копирование не производится, если адаптер переменного тока отключен и компьютер работает от батареи.

2.) Второй скрипт выполняет фактическое резервное копирование и запускается cron через несколько минут после пробуждения. Он активирует удаленный конечный компьютер, монтирует общий ресурс smbfs, выполняет разностное резервное копирование с использованием backintime и выключает удаленный компьютер, а затем переводит локальный компьютер в спящий режим:

#!/bin/bash
echo Wake up destination computer and sleep...
wakeonlan <mac_address>
date
echo ..sleep for 90s #the time your computer needs to boot and start smb
sleep 90
echo Mounting share..
sudo smbmount //<ip_address>/backup_folder /home/<user>/local_folder/ -o username=<user>,password=<pass>,file_mode=0777,dir_mode=0777,uid=1000,user
echo ..share mounted!
echo Starting backup!
backintime --backup > backintime.log
echo Backup finished, giving it time to settle..
sleep 10
echo Unmounting share..
sudo smbumount /home/<user>/local_folder/
sleep 5
echo Shutdown remote computer...
ssh '<user>@<ip_address>' "sudo shutdown -h now"
echo Going back to sleep..
/usr/lib/hal/scripts/hal-system-power-suspend

Для каждой команды sudo используйте visudo для предоставления прав суперпользователя. Используйте авторизацию publickey, чтобы избежать запросов пароля в команде ssh.

Теперь у вас есть свежие резервные копии каждую ночь с минимальным энергопотреблением. Надеюсь, это кому-нибудь поможет.

0

Самый простой способ сделать это - установить таймер пробуждения в BIOS. Таким образом, компьютер всегда загружается во время резервного копирования. А затем напишите сценарий, чтобы убедиться, что никто не вошел в систему, и резервное копирование завершено для завершения работы.

0

Таким образом, возможно ли, чтобы расписания Ноутбуков автоматически просыпались от приостановки или выключения?

Да, это возможно. Я сделал это давным-давно - однако я не могу точно вспомнить, как, но это было не сложно, из того, что я помню, был файл конфигурации, который вы просто отредактировали.

Попробуйте посмотреть конфигурацию ядра, должна быть связана с APM/ACPI. Удачи.

РЕДАКТИРОВАТЬ: Нашел команду, это apmsleep . Я думаю, это то, что вы ищете.

0

Эта проблема хорошо известна пользователям домашних PVR-систем на основе Linux, таких как MythTV (они хотят, чтобы их видеомагнитофон просыпался, когда есть что записать), и вики-сайт MythTV дает много информации на эту тему: http://www.mythtv.org/wiki/System_wakeup

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