Привет дорогой друг! В данной статье мы расскажем о том, как можно из Raspberry Pi сделать FTP сервер для регулярного резервного копирования файлов ваших сайтов. Мы решили написать данную статью после того, как однажды пятничным вечером провели несколько часов с Raspberry Pi, благополучно пролежавшим после покупки полтора года в шкафу. Итак, поехали!
В инвентаре обнаружено
- Raspberry Pi (Model B) - 25$
- Wifi адаптер EOUP 802.11n 150Mbps - 7.69$
- Kingston SDHC 8GB class 4 - 5$
- Адаптер питания на 500mA, 5V с входным током 100-240V - 5$
- USB клавиатура (для установки и настройки в самом начале)
- HDMI кабель и монитор (временно)
- Дисплей с HDMI входом (для первоначальной установки)
Если у вас не сайт-визитка, а более крупные проекты, рекомендуем использовать карту памяти 32GB класса 10. Мы не будем рассматривать подключение внешнего диска для бэкапов, так как цель статьи достичь необходимого результата, который будет занимать минимум места и потреблять минимум ресурсов.
По поводу адаптера для питания, можете использовать и 1000mA / 5V. Мы этого не сделали, так как из периферийных устройств к Raspberry Pi в итоге будет подключен лишь 1 Wifi адаптер.
Установка Raspbian
- Скачиваем последнюю версию Raspbian
- Форматируем SD карту FAT32 или FAT.
В нашем случае FAT, так как форматирование прошло стандартной дисковой утилитой Mac OS X - Следуем гайду по установке скачанного образа на Windows, Linux или MacOS. Мы воспользовались ApplePi Baker для быстрого монтирования образа из-под Mac OS X в графическом интерфейсе.
- Вставляем карту в Raspberry Pi, подключаем Wifi адаптер, USB клавиатуру и HDMI кабель к монитору. Ждем загрузки и корректируем некоторые настройки на свое усмотрение.4.1. Здесь мы изменили пароль пользователя pi в пункте 2 (Change User Password)4.2. Экран загрузки оставили Scratch, так как графический интерфейс нам не пригодится4.3. Изменили имя хоста в Advanced Options > Hostname4.4. Включили SSH в Advanced Options > SSH4.5. Изменили настройки регионов в Internationalisation Options (не забудьте изменить раскладку клавиатуры Generic 105-key (Intl) PC. Изменить можно в пункте Change Keyboard Layout). Мы не сразу догадались и изменили через консоль в файле: /etc/default/keyboard/
Для этого необходимо в консоле вписать
sudo nano /etc/default/keyboard/ найти GB и изменить на US. - Все, нажимаем Finish
Настройка WiFi на Raspbian
- После загрузки Raspberry открываем файл интерфейсов сети, для этого пишем:
sudo nano /etc/network/interfaces Находим "iface wlan0 inet manual" и меняем на "iface wlan0 inet static", под ним добавляем статичный локальный адрес. В нашем случае получилось так: auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.1.155
netmask 255.255.255.0
gateway 192.168.1.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf После введения изменений нажимаем CTRL+X, потом Y, потом ENTER. - Открываем файл супликанта, в командную строку вводим следующее:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf В открывшемся файле пишем настройки вашего WiFi, как указано ниже. В нашем случае получилось так:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="PerfectoWeb"
psk="AcC3S4R@SBP1"
} Естественно, вместо PerfectoWeb - ваш SSID и вместо AcC3S4R@SBP1 - ваш пароль.
После введения изменений нажимаем CTRL+X, потом Y, потом ENTER. - Вводим в командную строку: sudo ifdown wlan0 После завершения процесса вводим: sudo ifup wlan0 Перезагружаемся командой: sudo reboot
Wifi настроен и будет автоматически подключаться при старте Raspberry Pi.
Установка FTP на Raspbian
- Для начала обновляемся командой:
sudo apt-get update && sudo apt-get upgrade -y - Устанавливаем vsftpd, один из защищенных FTP демонов:
sudo apt-get install vsftpd -y - Меняем настройки на наше усмотрение, для чего открываем файл конфигураций:
sudo nano /etc/vsftpd.conf- Для блокировки анонимного входа по FTP меняем:
anonymous_enable=YES на anonymous_enable=NO - Открываем доступ локальным пользователям, изменив:
#local_enable=YES на local_enable=YES - Разрешаем запись файлов, изменяя следующее:
#write_enable=YES на write_enable=YES
- Для блокировки анонимного входа по FTP меняем:
- Перезагружаем FTP сервер командой:
sudo service vsftpd restart
IP 192.168.1.155 в данном случае меняете на ваш, который установили в пункте 1 настроек Wifi.
Настраиваем непрерывную работу Wifi
- Отключаем засыпание экрана
sudo nano /etc/lightdm/lightdm.conf Находим # xserver-command = X и меняем на xserver-command=x -s 0 -dpms
После введения изменений нажимаем CTRL+X, потом Y, потом ENTER. - Открываем планировщик задач
sudo crontab -e Вставляем строку 0 0,8 * * * reboot или */1 * * * * ping -c 1 8.8.8.8
После введения изменений нажимаем CTRL+X, потом Y, потом ENTER. - Отключаем энергосбережение Wifi адаптера. Создаем файл
sudo nano /etc/modprobe.d/8192cu.conf Записываем в нем options 8192cu rtw_power_mgnt=0 rtw_enusbss=0
Сохраняем и выходим нажимая CTRL+X, потом Y, потом ENTER.
Настройка Port Mapping в роутере
В нашем случае это Apple Airport Express. Мы рассмотрим вариант настройки на основе этого девайса. Думаем, вы сами без каких-либо трудностей сможете найти настройки преобразования портов в вашем роутере.- Для начала узнаем mac адрес нашего Wifi адаптера. Для этого в командную строку вводим:
ifconfig wlan0 и копируем оттуда HWaddr - С помощью Airport Utility заходим в Network и добавляем резервацию IP адреса для Raspberry Pi. Для этого в DHCP Reservations добавляем наш статичный адрес с mac-адресом Wifi, как указано на картинке.
- Далее создаем настройки переадресации порта. Для этого добавляем следующую запись в Port Settings. В UDP/TCP портах, как публичных, так и приватных, указываем 21. В Private IP Address указываем статичный IP адрес Raspberry Pi
- Открываем настройки сети (Network Options) и включаем хост по умолчанию с указанием статичного IP адреса от Raspberry
Сохраняем, перезагружаем роутер.
Перенаправление 21-ого порта на Raspberry Pi готово!
Настройка резервного копирования в ISPmanager
В нашем случае ISPmanager 4 Lite. Логинимся под необходимым пользователем и переходим в раздел Backup plan management (настройки резервного копирования).Нажимаем на «Создать» и вводим данные FTP. В нашем случае получилось так:
- В Storage выбираем Remote FTP Server и ниже указываем ваш IP адрес (узнать IP), логин и пароль от Raspberry
- В Directory можете указать любую папку. Указываете время старта резервного копирования, периодичность и количество хранимых архивов
- Инструкция для других панелей:
- cPanel Backup Wizard
- Plesk Backup Manager
Поздравляем!
Теперь можете выключить HDMI, USB клавиатуру и оставить Raspberry где-то на шкафу с единственным проводом от питания. Каждый день ваша малинка будет принимать свежие резервные копии вашего сайта.
Далее мы планируем настроить дублирование резервных копий с Raspberry Pi в Dropbox, Google Drive и других облачных хранилищах. Если статья была интересной – дайте знать, и мы обязательно напишем продолжение!