INT 21h

Hi, I am Vladimir Smagin, SysAdmin and Kaptain. Telegram Email / GIT / RSS / GPG

Python скрипт для быстрого получения токена из Селектел

№ 11253 В разделах: Programming Sysadmin от March 21st, 2021,
В подшивках: , ,

Получает токен по логину и паролю и отдает в виде строки без переносов. Крайне удобно использовать в bash скриптах. Пример использования в моем наборе скриптов для получения сертификатов LetsEncrypt для хранилища Селектел https://git.blindage.org/21h/certbot-for-selectel

import argparse
import requests

parser = argparse.ArgumentParser("get_selectel_token")
parser.add_argument("account", help="Your master account or subaccount, i.e. 83522 or 43544_somename", type=str)
parser.add_argument("password", help="Password for this account", type=str)
args = parser.parse_args()

headers = {'X-Auth-User': str(args.account), 'X-Auth-Key': str(args.password)}
response = requests.get("https://api.selcdn.ru/auth/v1.0", headers=headers)
if response.status_code == 204:
    print(response.headers['X-Auth-Token'], end="")
else:
    print("Error:", response.status_code)

Нет комментариев »

Анализ логов Селектел для подсчета расходов

№ 8769. В разделе " Programming " от April 16th, 2018

В подшивках: ,

Ежедневная статистика хранилищ Селектел

№ 7643 В разделах: Programming Sysadmin от October 26th, 2015,
В подшивках: ,

Сейчас есть проблемы на стороне Селектел с правильными цифрами в счетчиках. Когда исправят не знают.

Создал специальный скрипт на python, который каждый день по крону дергается и генерирует красивую табличку на html странице. Особо искушеные пользователи могут допилить скрипт и дергать его хоть ежечасно. Лично мне это делать вломы, т.к. нет необходимости. Зачем она нужна? Ну она помогает вычислять хотлинкеров и подобных орков и вместо вставленой ими картинки можно положить красивую фотографию мужского полового хуя 😉 Проще говоря, для экономии траффика.

Забрать код можно здесь https://git.blindage.org/21h/selectel-storage

2015-10-26 02-14-10 Скриншот экрана

Перед использованием необходимо провести настройку вполне известных вам параметров:
selectelUsername = "666"
selectelPassword = "mysuperpassword"
selectelStorages = ["aria2g","skyrim"]
exportDir = "/var/www/radio70.ru/statistics"
DBstorage = '/opt/selectel_stats/statsraw.db'
linecolor1='#FFFCEE'
linecolor2='#EEF6FF'
linecolor3='#FFBC41' #подсветит если траффик больше указанного
trafficProblems=100000 #в килобайтах

Самые обязательные это логин, пароль, список хранилищ, директория для вывода (создастся сама по указанному пути) и путь к базе данных. Вся база данных представляет собой sqlite3 с куууучей хлама внутри. Почему sqlite? Ну он весьма быстр. Но опять же я за определенную плату могу специально для вас могу переделать под какой-нибудь MySQL 🙂

Нет комментариев »

Плагин WordPress для автоматической загрузки файлов в хранилище Selectel

№ 4620 В разделе "Programming" от April 25th, 2015,
В подшивках: , ,

Плагин капитально обновился. Наконец у меня дошли сделать все не через жопу, а через curl. Если у вас ранее стоял плагин этот, то он состоял из нескольких файлов и теперь они не нужны. Все в одном месте.

Скачайте, распакуйте плагин в директорию плагинов и активируйте его в настройках WordPress. Потом откройте supload.php и впишите туда ваши логин, пароль и пути.

Далее в настройках WordPress установите URL вашего хранилища (у меня это blindage.org).

Media Settings ‹ INT 21h — WordPress

Плагин срабатывает на публикацию или обновление записи, закачивая все содержимое uploads в ваше хранилище. После закачки директория uploads очистится. В случае неуспешной закачки плагин пожалуется 🙂 Также до публикации просмотр изображений в галерее будет недоступен, т.к. там картинки берутся по URL хранилища, а не куда они были загружены.

Поддержка плагина остановлена. В каталоге плагинов вордпресса появился плагин еще круче моего, а я оч ленивый свой допиливать.

21 комментариев »

Получение информации о виртуальных машинах в облаке из панели управления Селектел

№ 3840 В разделах: Programming Sysadmin от November 9th, 2011,
В подшивках: ,

Используется библиотека simple_html_dom.php. Программа уже заточена под новый интерфейс. Просто поменяйте логин и пароль. Скрипт может вывести любую информацию. Данный пример выведет ваше имя, баланс в облаке и сколько потрачено денег на виртуальные машины за текущий день.

<?
require('simple_html_dom.php');

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://support.selectel.ru/');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS,
    'action_method=GET&user=YOURID&pass=YOURPASSWORD');
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$store = curl_exec ($ch);
curl_setopt($ch, CURLOPT_URL, 'https://support.selectel.ru/cloud/vm/');
$content = curl_exec ($ch);
curl_close ($ch); 

$html = new simple_html_dom();
$html->load($content);

$userinfo = $html->find('body script',0);
$vms_o = $html->find('.vm-box');

preg_match_all("/var [a-z_]+ = \{(.*?)\};/",
    $userinfo->innertext,$userinfo_array);

$userinfo=json_decode(str_replace(array("var client_info = ","};"),
    array("","}"),$userinfo_array[0][1]));

echo $userinfo->username.", баланс "; echo ($userinfo->cloud->balance/100). " руб.\n";

foreach($vms_o as $vm_o) {
    $vm_name = $vm_o->find(".vm-name",0);
    $vm_money = $vm_o->find(".vm-money",0);
    echo "Название ".trim($vm_name->innertext)."\n";
    echo "Потрачено за сутки ".trim($vm_money->innertext)." руб.\n\n";
}

?>

Если этот скрипт дополнить другими (например, статистикой из Яндекс.Метрики), то можно получить вполне клевые уведомления о балансе, статистике и трате средств со счета.

Нет комментариев »

Яндекс.Метрика

Fortune cookie: QOTD: "The marines and I have something in common; we're both looking for a few good men!"