сегодня в 13:25
Итак, приступим:
- Становлюсь root
su
- Создаю локальную директорию Яндекс.Диска
mkdir /mnt/yandex-disk
- Меняю директорию для загрузки пакета
cd /usr/src
- Скачиваю 64-битный rpm пакет
wget http://repo.yandex.ru/yandex-disk/yandex-disk-latest.x86_64.rpm
- Устанавливаю пакет
rpm -ivh yandex-disk-latest.x86_64.rpm
- Запускаю первоначальную настройку Яндекс.Диска
yandex-disk setup
- Отвечаю на вопросы Яндекс.Диска
Использовать прокси-сервер? [y/N]: N
Авторизация
Если у вас ещё нет аккаунта на Яндексе, его можно завести по ссылке https://passport.yandex.ru/passport?mode=register
Введите логин: username
Введите пароль: *******
Токен сохранен в /root/.config/yandex-disk/passwd
Настройка Яндекс.Диска
Введите путь к папке Яндекс.Диска (Оставьте пустым для использования папки '/root/Yandex.Disk'): /mnt/yandex-disk
Запускать Яндекс.Диск при входе в систему? [Y/n]: n
- Копирую папку с конфигурацией в /etc (я считаю все файлы должны находится в стандартных местах)
cp -r /root/.config/yandex-disk /etc
- Правлю пути в файле /etc/yandex-disk/config.cfg
nano /etc/yandex-disk/config.cfg
- И привожу файл /etc/yandex-disk/config.cfg к следующему виду
auth="/etc/yandex-disk/passwd"
dir="/mnt/yandex-disk" - Создаю файл /usr/lib/systemd/system/yandex-disk.service
nano /usr/lib/systemd/system/yandex-disk.service
- Со следующим содержанием
[Unit]
Description=Yandex Disk console client
Requires=network.target
[Service]
Type=forking
User=root
Group=root
ExecStart=/usr/bin/yandex-disk start -c /etc/yandex-disk/config.cfg
#Следующие две строчки это костыль, т.к. при перезагрузке служба не стартует сразу, пишет ошибку: "Ошибка: путь к папке используется другим пользователем".
#Скорее всего надо написать еще что-нибудь в "Requires=", чтобы служба стартовала после чего-то еще, но я не знаю что
#Хотя с другой стороны если служба зависнет то сама перезапустится
RestartSec=60
Restart=always
[Install]
WantedBy=multi-user.target - Перезапускаю systemd
systemctl --system daemon-reload
- Запускаю службу yandex-disk.service
systemctl start yandex-disk.service
- Проверям запуск службы командой
systemctl status yandex-disk.service
- И получаем примерно такой ответ
[root@localhost .config]# systemctl status yandex-disk.service
yandex-disk.service - Yandex Disk console client
Loaded: loaded (/usr/lib/systemd/system/yandex-disk.service; disabled)
Active: active (running) since Пт 2013-11-08 23:11:15 MSK; 1s ago
Process: 31601 ExecStart=/usr/bin/yandex-disk start -c /etc/yandex-disk/config.cfg (code=exited, status=0/SUCCESS)
Main PID: 31638 (yandex-disk)
CGroup: name=systemd:/system/yandex-disk.service
└─31638 /usr/bin/yandex-disk --tag="1 7 8 9 15 16" --no-daemon="true" --dir="/mnt/yandex-disk" --config="/etc/yandex-disk/config.cfg" --...
ноя 08 23:11:15 localhost.localdomain systemd[1]: Started Yandex Disk console client. - Или проверям запуск службы командой
yandex-disk status -c /etc/yandex-disk/config.cfg
- И получаем такой ответ
[root@localhost ~]# yandex-disk status -c /etc/yandex-disk/config.cfg
Статус синхронизации: 47.1 KB/ 3.3 GB (0 %)
Статус ядра синхронизации: синхронизация
Путь к папке Яндекс.Диска: '/mnt/yandex-disk'
Дисковое пространство:
Занято: 5.2 GB
Свободно: 4.8 GB
Максимальный размер файла: 10 GB
Размер корзины: 1.9 GB
Последние синхронизированные пути:
файл: 'TEST/testfile.txt' - Добавляю службу yandex-disk.service в автозагрузку
systemctl enable yandex-disk.service
Все работает после перезагрузки.
Локальные копии бэкапов синхронизирую с локальной копией Яндекс.Диска командой в crobtab`е
/usr/bin/rsync -rc --delete /mnt/500gb/backups/ /mnt/yandex-disk/backups/
Также обнаружил возможность запускать несколько копий Яндекс.Диска с разными учетными записями. Например так:
/usr/bin/yandex-disk start -c /etc/yandex-disk1/config.cfg
/usr/bin/yandex-disk start -c /etc/yandex-disk2/config.cfg
/usr/bin/yandex-disk start -c /etc/yandex-disk3/config.cfg
При отладке столкнулся с проблемой: служба не запускалась при загрузке. Выдавало ошибку: «Ошибка: путь к папке используется другим пользователем». Но потом без ошибок запускалась вручную systemctl start yandex-disk.service.
Решилось костылем с RestartSec=60 и Restart=always. Но это я считаю не совсем правильно, т.к. служба стартует со 2 раза — о чем говорит кусок лога:
tail -1000 /var/log/messages | grep 'yandex'
Nov 8 19:34:19 sharov yandex-disk[514]: Ошибка: путь к папке используется другим пользователем: /mnt/yandex-disk
Nov 8 19:34:48 sharov systemd[1]: yandex-disk.service holdoff time over, scheduling restart.
Nov 8 19:34:49 sharov yandex-disk[1816]: Запуск демона...Готово
P.S.: Мое решение не претендует абсолютную правильность. Но работает.
P.P.S: Что-то подсказывает мне что корзина в Яндекс.Диске не даст нормально использовать его для бэкапов, т.к. при удалении файлов из локальной копии Яндекс.Диска они перемещаются в корзину, а очистить корзину из консольного клиента нельзя, только из веб интерфейса. Тем самым уменьшается размер диска на размер файлов в корзине. И когда он переполнится бэкапы перестанут на него копироваться. Либо вручную жать на кнопочку очистить корзину из веб интерфейса, что является костылем. Подожду пока Яндекс.Диск заполнится и посмотрю что будет.
Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.
This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends:
- Massacres That Matter - Part 1 - 'Responsibility To Protect' In Egypt, Libya And Syria
- Massacres That Matter - Part 2 - The Media Response On Egypt, Libya And Syria
- National demonstration: No attack on Syria - Saturday 31 August, 12 noon, Temple Place, London, UK
Комментариев нет:
Отправить комментарий