melekin |
|
Темы:
3
Сообщения:
21
Участник с: 10 сентября 2012
|
Зарегистрировал четыре учетных записи на Box.com по АКЦИИ на 50 гигов каждая. По теме решил организовать программный Raid . сам скрипт: #!/bin/bash #------------------------------------------------------------- # Скрипт работы с webdav #------------------------------------------------------------- # Ссылки на аккаунты в WebDAV WEBDAV_URL1=URL1 WEBDAV_URL2=URL2 WEBDAV_URL3=URL3 WEBDAV_URL4=URL4 # Пути монтирования WEBDAV_DIR1=/mnt/webdav1/ WEBDAV_DIR2=/mnt/webdav2/ WEBDAV_DIR3=/mnt/webdav3/ WEBDAV_DIR4=/mnt/webdav4/ RAID_DIR=/mnt/webdav/ RAID_DIR_BACKUP=/mnt/webdav.backup/ SYMLINK_WEBDAV=/home/user/webdav # Имя директории для резервного копирования выбранной папки PATHNAME_BACKUP=backup # Служебные переменные ROOT_UID=0 # Только пользователь с $UID 0 имеет привилегии root. E_NOTROOT=67 # Признак отсутствия root-привилегий. ME=`basename $0` if [ "$UID" -ne "$ROOT_UID" ]; then echo "Для работы сценария требуются права root." exit $E_NOTROOT fi function print_help() { echo "Скрипт работы с Webdav" echo echo "Использование: $ME options..." echo "Параметры:" echo " -m Монтировать директории WebDAV." echo " -u Размонтировать директории." echo " -s Сделать резервную копию." echo " -b folder Резервная копия указанной папки в директорию WebDAV." echo " -h Справка." echo } function mount_webdav() { echo echo "---------------------------------------" echo "Монтируем каталоги" echo "---------------------------------------" echo if [ ! -d "$WEBDAV_DIR1" ]; then echo "Создание $WEBDAV_DIR1" mkdir $WEBDAV_DIR1 fi echo "mount $WEBDAV_DIR1" mount -t davfs -o rw $WEBDAV_URL1 $WEBDAV_DIR1 if [ ! -d "$WEBDAV_DIR2" ]; then echo "Создание $WEBDAV_DIR2" mkdir $WEBDAV_DIR2 fi echo "mount $WEBDAV_DIR2" mount -t davfs -o rw $WEBDAV_URL2 $WEBDAV_DIR2 if [ ! -d "$WEBDAV_DIR3" ]; then echo "Создание $WEBDAV_DIR3" mkdir $WEBDAV_DIR3 fi echo "mount $WEBDAV_DIR3" mount -t davfs -o rw $WEBDAV_URL3 $WEBDAV_DIR3 if [ ! -d "$WEBDAV_DIR4" ]; then echo "Создание $WEBDAV_DIR4" mkdir $WEBDAV_DIR4 fi echo "mount $WEBDAV_DIR4" mount -t davfs -o rw $WEBDAV_URL4 $WEBDAV_DIR4 echo echo "---------------------------------------" echo "Объединяем каталоги в RAID" echo "---------------------------------------" echo if [ ! -d "$RAID_DIR" ]; then echo "Создание $RAID_DIR" mkdir $RAID_DIR fi echo "mount $RAID_DIR" mhddfs $WEBDAV_DIR1,$WEBDAV_DIR2 $RAID_DIR -o allow_other if [ ! -d "$RAID_DIR_BACKUP" ]; then echo "Создание $RAID_DIR_BACKUP" mkdir $RAID_DIR_BACKUP fi echo "mount $RAID_DIR_BACKUP" mhddfs $WEBDAV_DIR3,$WEBDAV_DIR4 $RAID_DIR_BACKUP -o allow_other echo echo "---------------------------------------" echo "Создание символических ссылок" echo "---------------------------------------" echo echo "Создание ссылки $SYMLINK_WEBDAV на $RAID_DIR" ln -s $RAID_DIR $SYMLINK_WEBDAV } function sync_webdav() { echo echo "---------------------------------------" echo "Синхронизация $RAID_DIR c $RAID_DIR_BACKUP" echo "---------------------------------------" echo rsync --progress -zuogthvr --delete-after $RAID_DIR $RAID_DIR_BACKUP } function umount_webdav() { echo echo "---------------------------------------" echo "Размонтирование и удаление каталогов..." echo "---------------------------------------" echo echo "Размонтирование и удаление $RAID_DIR_BACKUP" umount $RAID_DIR_BACKUP rm -rf $RAID_DIR_BACKUP echo "Размонтирование и удаление $RAID_DIR" umount $RAID_DIR rm -rf $RAID_DIR echo "Размонтирование и удаление $WEBDAV_DIR1" umount $WEBDAV_DIR1 rm -rf $WEBDAV_DIR1 echo "Размонтирование и удаление $WEBDAV_DIR2" umount $WEBDAV_DIR2 rm -rf $WEBDAV_DIR2 echo "Размонтирование и удаление $WEBDAV_DIR3" umount $WEBDAV_DIR3 rm -rf $WEBDAV_DIR3 echo "Размонтирование и удаление $WEBDAV_DIR4" umount $WEBDAV_DIR4 rm -rf $WEBDAV_DIR4 echo echo "---------------------------------------" echo "Удаление символических ссылок..." echo "---------------------------------------" echo echo "Удаление ссылки $SYMLINK_WEBDAV" rm $SYMLINK_WEBDAV } function backup_directory(){ echo echo "---------------------------------------" echo "Резервное копирование $DIR" echo "---------------------------------------" echo # Формирование путей для бэкапа и проверка их существования PATH_BACKUP=${RAID_DIR}$PATHNAME_BACKUP'/' if [ ! -d "$PATH_BACKUP" ]; then echo "Создание $PATH_BACKUP" mkdir $PATH_BACKUP fi PATH_BACKUP=${PATH_BACKUP}`basename $DIR`'/' if [ ! -d "$PATH_BACKUP" ]; then echo "Создание $PATH_BACKUP" mkdir $PATH_BACKUP fi echo "Резервное копирование $DIR в $PATH_BACKUP" rsync --progress -zuogthvr --delete-after $DIR $PATH_BACKUP } if [ $# = 0 ]; then print_help fi while getopts mushb: opt ; do case $opt in m) mount_webdav; ;; u) umount_webdav; ;; s) sync_webdav; ;; h) print_help ;; b) DIR=$OPTARG; backup_directory ;; *) echo "Неправильный параметр"; echo "Для вызова справки выполните $ME -h"; exit 1 ;; esac done https://www.box.com/dav login1 pass1 https://www.box.com/dav login2 pass2 ... WEBDAV_URL1=https://www.box.com/dav/ WEBDAV_URL2=https://www.box.com/dav/ ... Есть мысли как это исправить? |
kurych |
|
Темы:
0
Сообщения:
1394
Участник с: 06 ноября 2011
|
Кто Вам мешает использовать при монтировании опцию username=loginN ? Если /etc/davfs2/secrets в принципе позволяет хранить множество уч.записей. |
melekin |
|
Темы:
3
Сообщения:
21
Участник с: 10 сентября 2012
|
kurychя ведь написал что в /etc/davfs2/secrets все правильно заполнено, но т.к. все учетнеые записи принадлежат одному сервису https://www.box.com/dav/ , то из четырех учетных записей подлючение происходит только к одной четыре раза. Можно поподробнее про username=loginN ? |
kurych |
|
Темы:
0
Сообщения:
1394
Участник с: 06 ноября 2011
|
А в документацию заглянуть? man mount.davfs |
melekin |
|
Темы:
3
Сообщения:
21
Участник с: 10 сентября 2012
|
Проблема решена))) в /etc/davfs2/secrets прописываем вместо https://www.box.com/dav login1 pass1 https://www.box.com/dav login2 pass2 ... DIR1 login1 pass1 DIR2 login2 pass2 ... |