Простой бэкап на Яндекс.Диск с помощью cURL

У меня есть скрипт для резервного копирования сайта, который работает по расписанию и создаёт бэкап в виде нескольких 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., но мне хватает и такого скрипта.