| 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
donehttps://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 ... |