У меня есть скрипт для резервного копирования сайта, который работает по расписанию и создаёт бэкап в виде нескольких tar-архивов в каталоге, скажем, /home/cube/backups. Задача — так же по расписанию заливать эти файлы на Яндекс.Диск.
Почему именно Яндекс.диск?
- Он работает шустро (по крайней мере, в пределах России).
- Может работать по WebDAV.
- Сразу дают 10 бесплатных гигабайт.
- Он мне нравится.
Почему именно cURL?
- Я, конечно, знаю про davfs2 и пользуюсь им, но на виртуальном хостинге сие затруднительно.
- cURL удобен для использования в скриптах.
Несмотря на то, что cURL не поддерживает протокол WebDAV, его использовать для этих целей можно, ибо WebDAV есть, по сути, расширение протокола HTTP(S) несколькими дополнительными методами. А уж с HTTP PUT у cURL никаких проблем нет.
Вот небольшой скриптик, который тоже должен запускаться по расписанию через некоторое время после основного скрипта бэкапа. Всё, что он делает, это находит все файлы с расширением tar в каталоге /home/cube/backups, заливает каждый файл на Яндекс.Диск и удаляет его.
#!/bin/bash
#Created: Cube, 25.04.2012
#Version 1.0
cd /home/cube/backups
for i in *.tar; do
# username:password - имя пользователя и
# пароль к аккаунту Яндекса
curl -T ${i} --user username:password https://webdav.yandex.ru
rm ${i}
done
Можно приделать красивый вывод, обработку ошибок, etc., но мне хватает и такого скрипта.