cadaver консольный webDAV клиент

Перед нами cadaver — консольный клиент работающий по модному нынче протоколу webDAV. Основное достоинство этой программы в том, что она позволяет загружать файлы на  webDAV сервер из bash скрипта, что очень облегчает резервное копирование на одиноких OpenVZ серверах. Однако cadaver подойдет любому, кто желает использовать  webDAV из командной строки.

 

 

cadaver  позволяет подключаться к серверу по протоколу  webDAV из командной строки и выполнять множество команд по смыслу похожих на привычные нам команды доступные в ftp клиентах.  cadaver  работает в диалоговом режиме, то есть после запуска появляется приглашение к вводу команд.

В репозитариях CentOS 7 cadaver есть, поэтому установит его можно банальным yum install cadaver. Настройки для подключения по умолчанию (для конкретного пользователя) к определенному серверу можно сделать в файле ~/.netrc. Содержимое файла должно быть примерно таким:

Machine     example.ru
login     your-username
password     you-password

Подключится к серверу можно или коммандой cadaver https://example.ru. Если логин и пароль для https://example.ru не указаны в ~/.netrc то их нужно будет ввести. Так же подключиться к серверу можно в диалоговом режиме командой open.

Приведу пример полезного скрипта, который подключается к серверу https://webdav.example.ru (логин и пароль для которого должны быть указаны в ~/.netrc) и копирует файл  example_file из локальной папки /example в папку /examopledir на сервере. Очень полезный для бэкапов скрипт:

W_DIR="/examopledir"
send=$(ls /example | grep example_file)
cadaver -t <<EOF
open https://webdav.example.ru
cd $W_DIR
put $send
EOF

Комманда put загружает файл на сервер, если же нужно копировать несколько файлов, то можно использовать команду mput.

Для боле полного представления о возможностях  сadaver приведу немного вольный перевод man страницы:

ОПЦИИ:

  • -t, --tolerant — разрешить  cd/open в не WebDAV каталогах. Может помочь если сервер и прокси сервер имеют проблемы с поддержкой  WebDAV
  • -r, --rcfile=file — использовать файл настроек  file вместо ~/.cadaverrc
  • -p, --proxy=host[:port] — подключаться используя прокси по адресу  host с портом  port
  • -V, --version — вывести информацию о версии
  • -h, --help — показать справку

КОММАНДЫ:

  • ls [N] — вывести на экран содержимое каталога N
  • cd N — сменить текущий каталог на N
  • pwd    - вывести на экран имя текущего каталога
  • put N [N1] — загрузить на сервер файл  N [назвать его N1]
  • get N [N1] — скачать файл N [назвать его N1]
  • mget N  N1 ... - скачать несколько файлов N  N1 ...        
  • mput N  N1 … - загрузить на сервер несколько файлов  N  N1 ...
  • edit  N — редактировать объект  N
  • less  N — показать содержимое объекта  N через представление  less
  • mkcol  N [N1 …]  — создать каталог[и] N  [N1 …]
  • cat N [N1 …]  - вывести на экран содержимое папок  или файлов N [N1 …]     
  • delete  N [N1 …] - удалить ресурсы N [N1 …] (кроме каталогов)        
  • rmcol N [N1 …] - удалить каталоги N [N1 …]  со всем содержимым
  • copy S D — скопировать объект из источника S в D               
  • move S D — переместить объект из источника S в D        
  • lock  N — блокировать объект  N
  • unlock N — разблокировать объект  N        
  • discover  N — вывести на экран информацию о состоянии блокировки объекта  N
  • steal  N — забрать маркер блокировки ресурса  N
  • showlocks — вывести список собственных блокировок       
  • propnames  N — имена свойств определенных для объекта N
  • chexec [+|-] N  — изменить разрешение на выполнение для объекта N            
  • propget N [P] - вывести значение свойства  P ресурса  N         
  • propset N P V propname value — установить свойство с именем P для объекта N и задать его значение равным  V
  • set [N] [V] — установить параметры отображения  N — параметр  V - значение           
  • open URL — установить соединение с URL
  • close  - закрыть текущее соединение
  • quit — выйти из программы
  • unset [N] [V] — Сбросить или очистить  параметры  N — параметр  V - значение
  • help — вывести справку на экран (выводит список доступных команд)

Комманды для работы с локальными объектами (каталогами, файлами):

  • lcd [N] — установить в качестве рабочего каталога в локальной системе  N
  • lls [N] — вывести на экран содержимое локального каталога  N
  • lpwd  - вывести сведения о текущем локальном рабочем каталоге
  • logout — завершить сессию (ту что началась при вводе логина и пароля)

Файл настроек (.netrc ):
       Файл  ~/.netrc  может быть использован для автоматической аутентификации на сервере. Используемые в файле настройки в каждой строке записываются через пробелы, символы табуляции и символы новой строки.

  • machine host — строка подключения, machine — ключевое слово host  - строка представляющая адрес сервера, который будет использоваться при подключении. Указанные после этой комманды настройки относятся к серверу host .
  • Default — ключевое слово, которое можно указать вместо  machine host. Настройки указанные после него применяются по умолчанию к любому серверу не указанному в отдельной директиве.  Ключевое слов Default можно использовать только один раз.
  • login username — имя пользователя которое  cadaver будет использовать при подключении к хосту указанному в  machine (login — ключевое слово username — ваше имя пользователя)
  • password string —пароль который  cadaver будет использовать при подключении к хосту указанному в  machine ( password — ключевое слово string — ваш пароль). Может быть использовано ключевое слово passwd

Все другие слова в файле ~/.netrc   cadaver  игнорирует

Добавить комментарий


Защитный код
Обновить