Подключение к OneDrive по протоколу WebDav

Последовательность действий аналогична подключению обычной сетевой папки, за исключением одной особенности — необходимо знать свой CID. Для этого в веб-интерфейсе OneDrive заходим в любой каталог, в адресной строке браузера вы увидите параметр cid=XXXXXXXXXXXXXXX.

Адрес подключения к хранилищу OneDrive по протоколу WebDAV выглядит следующим образом:

https://d.docs.live.net/XXXXXXXXXXXXXXX

Его необходимо скопировать в окно подключения сетевого диска, когда система запросит авторизацию, введите логин и пароль от вашего аккаунта OneDrive.

Для подключения также можно использовать командную строку:

net use S: https://d.docs.live.net/XXXXXXXXXXXXXXX/ /user:"user@live.com" "password" /persistent:yes

Backup данных на Яндекс Диск в Linux

Простой и одновременно надежный скрипт для создания и дальнейшего хранения бэкапов на Яндекс Диске. В примере ниже скрипт ежедневно в полночь делает дамп базы MySQL и создает архив всех файлов в заданном каталоге. Переменная TIME подобрана таким образом, чтобы бэкап за предыдущий день, кроме последнего числа месяца, затирался свежей резервной копией. При желании можно хранить бэкапы за каждый день, для этого измените формат даты на +%Y-%m-%d.

Создаем файл backup.sh, копируем в него следующие строки:

#!/bin/bash
# Задаем формат даты
TIME=`date +%Y-%b`

FILES=/tmp/www.$TIME.tar.gz
MYSQL=/tmp/mysql.$TIME.sql.gz

# Создаем архив файлов
tar -czf $FS_FILE -P /www

# Создаем архив базы MySQL
mysqldump -u backup --password=password --all-databases --ignore-table=mysql.event | gzip > $MYSQL

# Загружаем данные
curl --user user@yandex.ru:password -T "{$FILES,$MYSQL}" https://webdav.yandex.ru/

# Удаляем файлы
rm $FILES $MYSQL

Создадим пользователя для бэкапа данных MySQL, назначим права для SELECT и Lock Tables:

CREATE USER 'backup'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT, LOCK TABLES ON * . * TO 'backup'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Даем скрипту права на запуск:

chmod 0700 backup.sh

Добавим задание в crontab:

crontab -e
# Запускаем скрипт каждый день в полночь
0 0 * * * /home/backup.sh

Backup данных на OneDrive в Linux

В Windows 10 клиент OneDrive установлен в системе по умолчанию и изначально для хранения данных сервис предоставляет 15GB бесплатного пространства. Дополнительно можно получить «вечных» +30GB за счет бонусных программ. В моем случае это были: привлечение новых пользователей, загрузка изображений с камеры и программа лояльности. Как видите, можно получить существенный объем хранилища совсем даром. Так почему бы не использовать это место с пользой? Связи с чем я решил отказаться от использования DropBox и перенести все важные данные в облако OneDrive.

Еще я использовал Яндекс Диск в качестве хранилища бэкапов для Linux сервера. Главное достоинство Яндекс Диска — возможность заливать файлы по протоколу WebDAV просто используя сurl. Что бы все важные данные хранились в одном месте, было принято решение перенести бэкапы в OneDrive.

Для работы с OneDrive в Linux без использования клиента необходимо использовать OneDrive API. Я не горел желанием самостоятельно его ковырять, поэтому был взят уже готовый скрипт скрипт bash-onedrive-upload. Для работы скрипта необходимо указать Client ID и Client secret, для этого в Microsoft account Developer Center необходимо создать новое приложение. В настройках приложения «Edit settings» — «API Settings» обязательно нужно выбрать опцию «Mobile or desktop client app: yes».

Заливаем скрипт bash-onedrive-upload на сервер, bash-json-parser необходимо скачать отдельно и положить в каталог /libs/json/. Даем право на запуск:

chmod 0700 onedrive-authorize onedrive-base onedrive-upload ./libs/json/bash-json-parser

В файле onedrive.cfg необходимо указать полученные Client ID и Client secret:

export refresh_token_file="${script_base_folder}/.refresh_token"

# Authentication config
export api_client_id="Client ID"
export api_client_secret="Client secret"

# Upload config
# Leave empty for root folder
export api_folder_id=""
export max_upload_threads=2

Если оставить параметр export api_folder_id пустым, то по умолчанию файлы будут заливаться в корень OneDrive. При желании можно задать любой вложенный каталог. Для этого из адресной строки веб-интерфейса OneDrive необходимо скопировать id этого каталога.

Запускаем скрипт onedrive-authorize. Скрипт попросит перейти в браузере по указанной ссылке, где вам необходимо разрешить доступ приложению к данным OneDrive. После отверждения откроется пустая страница, из адресной строки которой в окно терминала необходимо скопировать значение параметра code. Если вы все сделали правильно, то увидите в терминале нечто похожее на это:

./onedrive-authorize
Please open the following URL in your browser and follow the steps until you see a blank page:
https://login.live.com/oauth20_authorize.srf?client_id=0000000000000000&scope=wl.skydrive%20wl.skydrive_update%20wl.offline_access&response_type=code&redirect_uri=https://login.live.com/oauth20_desktop.srf

When ready, please enter the value of the code parameter (from the URL of the blank page) and press return
111111111-1111-1111-1111-111111111111
It seems like we have a refresh token, so we are ready to go

После чего можно использовать скрипт для загрузки файлов:

#загрузка файла в коневой каталог
./onedrive-upload file1

#загрузка файла в вложенный каталог
./onedrive-upload -f "path" file1

Скрипт создания бэкапа и загрузки на сервер OneDrive:

BACKUP_FILES="/home/www /etc/nginx"
MYSQL_USER="user"
MYSQL_PASS="password"
TMP_DIR=/tmp/backup
BACKUP_TAR=/tmp/backup.`date +%y.%m.%d`.tar

mkdir -p $TMP_DIR

# Backup files
tar -czf $TMP_DIR/fs.tar.gz -P $BACKUP_FILES

# Backup MySQL
for db in $(mysql -B -s -u $MYSQL_USER --password=$MYSQL_PASS -e 'show databases' | grep -v information_schema)
do
# Exclude database
    if [ $db != "performance_schema" ] && [ $db != "mysql" ]; then
    mysqldump -u $MYSQL_USER --password=$MYSQL_PASS $db | gzip > $TMP_DIR/mysql.$db.sql.gz
    fi
done

# Merge files
tar -cf - -C $TMP_DIR . > $BACKUP_TAR

# OneDrive upload
./onedrive-upload -f "Sites/backup" $BACKUP_TAR

rm -r $TMP_DIR $BACKUP_TAR

Скрипт создает отдельный файл дампа для каждой базы MySQL, за исключением служебных данных, которые прописаны в исключения.

Переименовываем папку пользователя в Windows 10

Дата: 01.08.2015Метки:

После чистой установки Windows 10, я обнаружил что имя папки пользователя состояло из обрезанного до 5 символов логина учетной записи Microsoft. Как говориться: мелочь, а неприятно.

В редакторе реестра переходим по адресу:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList

Находим свой профиль и меняем значение строкового параметра ProfileImagePath на желаемый путь, перезагружаем компьютер.

Вход в сиcтему будет выполнен под временным профилем. Переименуйте папку пользователя C:UersMyName в соответствие значению ProfileImagePath. Если все сделали правильно, то после следующей перезагрузки, вход в систему будет выполнен под вашим текущим профилем.

Для изменения папки синхронизации OneDrive, необходимо запустить:

"C:UsersMyNameAppDataLocalMicrosoftOneDriveUpdateOneDriveSetup.exe"

Установка Google Chrome в Fedora

Дата: 01.08.2015Метки:

На данном примере я опишу установку Google Chrome в Fedora 25, в случае использования более ранних версий Fedora или RHEL/CentOS, вместо менеджера пакетов dnf необходимо использовать yum. Для поддержания браузера в актуальном состоянии лучший вариант установки Chrome из официального репозитория Google. Добавляем информацию о репозитории:

cat << EOF > /etc/yum.repos.d/google-chrome.repo
[google-chrome]
name=google-chrome - \$basearch
baseurl=http://dl.google.com/linux/chrome/rpm/stable/\$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
EOF

Для установки Google Chrome используем одну из следующих команд:

#Установка стабильной версии
dnf install google-chrome-stable

#Установка бета-версии
google-chrome-beta

#Установка dev-версии
dnf install google-chrome-unstable

Автоматическое монтирование дисков в Linux

Дата: 31.07.2015Метки:

Для начала необходимо узнать UUID монтируемого устройства. Для этого выполним команду:

blkid /dev/sdb1
/dev/sdb1: UUID="34e63ef2-fdf3-4330-8544-a5c732df779e" TYPE="ext4" PARTUUID="4ec77176-01"

Что бы диск автоматически монтировался при запуске системы необходимо добавить в fstab:

nano /etc/fstab
UUID=34e63ef2-fdf3-4330-8544-a5c732df779e /media/Storage	ext4	defaults	0 0

В случае монтирования ntfs разделов, необходимо указать тип файловой системы ntfs-3g.

Для того чтобы монтируемый диск отображался в сайдбаре nautilus, точка монтирования должна находится в каталоге /media, как это сделано в моем примере выше.

Загрузочная флешка с Fedora

Дата: 31.07.2015Метки:

Для начала определим имя присвоенное системой для нашей флешки. В терминале с правами root выполним следующую команду:

$ lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0 465.8G  0 disk 
├─sda1            8:1    0   500M  0 part /boot
└─sda2            8:2    0 465.3G  0 part 
  ├─fedora-swap 253:0    0   3.9G  0 lvm  [SWAP]
  ├─fedora-root 253:1    0    50G  0 lvm  /
  └─fedora-home 253:2    0 411.4G  0 lvm  /home
sdb               8:16   0 931.5G  0 disk 
└─sdb1            8:17   0 931.5G  0 part 
sdc               8:32   1     7G  0 disk 
├─sdc1            8:33   1   447M  0 part 
├─sdc2            8:34   1   6.2M  0 part 
└─sdc3            8:35   1  24.7M  0 part 
sr0              11:0    1  1024M  0 rom

Как видно из результата: имя устройства sdc, диск разбит на 3 логических раздела. Удаляем все существующие разделы:

fdisk /dev/sdX

Welcome to fdisk (util-linux 2.26.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): d
Partition number (1-3, default 3): 1

Partition 1 has been deleted.

Command (m for help): d
Partition number (2,3, default 3): 2

Partition 2 has been deleted.

Command (m for help): d
Selected partition 3
Partition 3 has been deleted.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Записываем образ Fedora на диск:

dd if=/home/user/fedora.iso of=/dev/sdХ bs=8M
55+1 records in
55+1 records out
468713472 bytes (469 MB) copied, 76.9137 s, 6.1 MB/s

Дублирование ярлыка Google Chrome в доке

Дата: 31.07.2015Метки:

Если закрепить ярлык Chrome в доке, то после его запуска появляется еще один ярлык, отвечающий за активное окно. Данная проблема впервые была замечена мной в Fedora 22, но подобная ситуация может быть и в других дистрибутивах. Для исправления необходимо внести изменения в ярлык запуска.

Открываем с правами на редактирования файл:

sudo nano /usr/share/applications/google-chrome.desktop

Добавляем параметр StartupWMClass=Google-chrome-stable в следующие секции:

[Desktop Entry]
[NewWindow Shortcut Group]
[NewIncognito Shortcut Group]

Как вариант можно установить бета версию google-chrome-beta, там эта проблема исправлена.

Неправильное отображение Gist в Twenty Fifteen

При использовании стандартной темы WordPress Twenty Fifteen, блоки кода вставленные из Gist отображаются некорректно. Для исправления проблемы необходимо добавить в таблицу стилей темы:

.gist table {
	table-layout: auto !important;
}

Транслитерация ссылок в WordPress

Небольшой мод классического плагина транслитерации ссылок в WordPress. Список изменений:

  • добавлена транслитерация имен загружаемых изображений,
  • из таблицы транслитерации удалены буквы в верхнем регистре,
  • транслитерация выполняется по стандарту ISO 9:1995.