Skip to content

Instantly share code, notes, and snippets.

View adzhurinskij's full-sized avatar

Alexandr Dzhurinskij adzhurinskij

View GitHub Profile
@adzhurinskij
adzhurinskij / disksmap.py
Created April 24, 2019 14:21
Pretty disks map for LSI HBA
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
import re
import json
from io import open
from subprocess import Popen, PIPE
from tabulate import tabulate
@adzhurinskij
adzhurinskij / gitdiff2mail.py
Last active May 22, 2019 12:32
Send GIT diff to mail in colorize html format
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
import os
import re
import argparse
from git import Repo
from jinja2 import Environment
from mailer import Message
@adzhurinskij
adzhurinskij / find_big_dirs.py
Created June 9, 2018 22:54
Find big size directories
#!/usr/bin/env python2
import os
import argparse
def argv_parse():
parser = argparse.ArgumentParser(
add_help=True,
description='Find big dirrectories',
@adzhurinskij
adzhurinskij / paths_to_full_paths.py
Created November 7, 2017 10:32 — forked from brantfaircloth/paths_to_full_paths.py
Convert paths to full paths (argparse)
class FullPaths(argparse.Action):
"""Expand user- and relative-paths"""
def __call__(self, parser, namespace, values, option_string=None):
setattr(namespace, self.dest, os.path.abspath(os.path.expanduser(values)))
def get_args():
parser = argparse.ArgumentParser(description='Something smart here')
parser.add_argument('my_conf', help='The configuration file for the db', action = FullPaths)
return parser.parse_args()
@adzhurinskij
adzhurinskij / rotate_old_radacct_detail_files_mtime_based.sh
Created September 14, 2017 09:00 — forked from ptomulik/rotate_old_radacct_detail_files_mtime_based.sh
Rotation script for freeradius accounting detail files. Shall be run as a cron script.
#! /bin/sh
########################################################################################
# Compresses old radacct detail files and removes very old compressed radacct files.
########################################################################################
# Author: P. Tomulik
########################################################################################
# Path to the programs used (for environments without $PATH set)
FIND=/usr/bin/find
@adzhurinskij
adzhurinskij / huawei_netconf.py
Created September 13, 2017 13:34
Huawei NetConf Example with paramiko
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import paramiko
from paramiko.ssh_exception import SSHException, BadHostKeyException
from paramiko.ssh_exception import AuthenticationException
from time import sleep
@adzhurinskij
adzhurinskij / move_modx.sh
Last active February 4, 2019 19:24
Change MODX core path
#!/bin/bash
old_path='/home/old_site/public_html'
new_path='/home/new_site/public_html'
files="
./core/config/config.inc.php
./manager/config.core.php
./connectors/config.core.php
./config.core.php
@adzhurinskij
adzhurinskij / aggregate.py
Created December 19, 2016 11:56
A utility to perform IPv4 & IPv6 prefix aggregation
#!/usr/bin/python
"""
ALK 2014-04-08
aggregate.py: IPv4 & IPv6 replacement (in spirit) for Joe Abley's 'aggregate' command
note: not a drop-in replacement for the original 'aggregate' command - command line flags are different
requirements: IPy class (debian: python-ipy package)
input: list of IPv4 and/or IPv6 addresses and/or subnets (filename or STDIN)
output: aggregated list if subnets (STDOUT)
@adzhurinskij
adzhurinskij / telegram.php
Last active December 1, 2016 10:47
Alert script with telegram @crierbot bot for Zabbix
#!/usr/bin/env php
<?php
if (count($argv) == 4) {
$token = trim($argv[1]);
$subject = trim($argv[2]);
$body = trim($argv[3]);
$subject = str_replace("PROBLEM:", "\xF0\x9F\x93\x9B PROBLEM:", $subject);
$subject = str_replace("OK:", "\xE2\x9C\x85 OK:", $subject);