Skip to content

Instantly share code, notes, and snippets.

View stoyanovgeorge's full-sized avatar
🎯
Focusing

Georgi Stoyanov stoyanovgeorge

🎯
Focusing
  • Techtriq GmbH
  • Germany
View GitHub Profile
@stoyanovgeorge
stoyanovgeorge / proc_monitor.sh
Created February 15, 2019 12:52
Python3 script monitoring if a process is running and logging the time when the process has stopped. It works for one or multiple instances of the same process.
#!/usr/bin/env python3
''' Script checking if a pre-defined process is running '''
import subprocess
import shlex
import time
import datetime
import psutil
import os
@stoyanovgeorge
stoyanovgeorge / mc_routing.sh
Last active July 17, 2019 12:52
Creates a multicast routing after the user inputs a valid network interface and then it lists the routing table.
#!/bin/bash
# Creating an array containing all network interfaces which are up
net_array=()
for iface in $(ifconfig | cut -d ' ' -f1| tr ':' '\n' | awk NF)
do
net_array+=("$iface")
done
unset "net_array[${#net_array[@]}-1]"
@stoyanovgeorge
stoyanovgeorge / mc_join
Created July 17, 2019 12:49
Join Multicast addresses over IGMP
The join command requires smcroute package to be installed
You can install it by executing:
sudo apt install smcroute
sudo smcroutectl join <interface> <mc_address>
where:
1. <interface> is the interface on which the MC traffic should be present
@stoyanovgeorge
stoyanovgeorge / process_checker.sh
Created March 27, 2019 13:10
Checks and records in a CSV file how many processes with a <process_name> are running every 10 seconds.
#!/usr/bin/env python3
import subprocess
import csv
import os
import time
from datetime import datetime
from pathlib import Path
#### Variables definition
#!/bin/bash
n='([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
m='([0-9]|[12][0-9]|3[012])'
IFS= read -rp 'Input: ' ipaddr
if [[ $ipaddr =~ ^$n(\.$n){3}/$m$ ]]; then
printf '"%s" is a valid CIDR\n' "$ipaddr"
elif [[ $ipaddr =~ ^$n(\.$n){3}$ ]]; then
@stoyanovgeorge
stoyanovgeorge / check_running_status.sh
Created February 11, 2019 13:01
Check if a PID (process ID is running and return True in case it does.
#!/bin/bash
if [[ $(ps -o pid= -p 2310) -ne 0 ]]; then
echo "True"
else
echo "False"
fi
@stoyanovgeorge
stoyanovgeorge / psnr_check.sh
Created October 23, 2018 12:39
Compares two image files and returns the PSNR and MSE values.
#!/bin/bash
if [ -e "$1" ] && [ -e "$2" ];
then
if file "$1" | grep -qE 'image|bitmap' && file "$2" | grep -qE 'image|bitmap' ;
then
ffmpeg -loglevel error -i "$1" -i "$2" -lavfi psnr=psnr.log -f null -
cat psnr.log
rm psnr.log
else
@stoyanovgeorge
stoyanovgeorge / backup.sh
Created August 30, 2018 11:46
Backup script which will backup all the files in a custom directory, will create a tar.xz archive and will delete previous backup files in case the md5sum is the same.
#!/bin/bash
target_dir=""
bkp_dir=""
while [[ ! $bkp_dir =~ [a-zA-Z] && ! -d "$bkp_dir" ]];
do
echo "Please enter a valid directory to backup:"
read -r bkp_dir
done
@stoyanovgeorge
stoyanovgeorge / random_number_range.sh
Last active August 20, 2018 10:46
Bash script which generates random number in a range [0 : 500]
#!/bin/bash
range=500
number=$RANDOM
let "number %= $range"
printf "Random number less than %s - %s\n" "$range" "$number"
@stoyanovgeorge
stoyanovgeorge / ping_check.sh
Last active August 20, 2018 10:46
Check whether a host is replying to ICMP requests or not. Usage: ./script.sh 192.168.1.1
#!/bin/bash
# check if the $1 is empty
if [[ -z "$1" ]];then
printf "Please define the IP or the hostname which you want to check!\nUsage: ./script.sh 192.168.1.1\n"
else
if ping -c 1 "$1" &> /dev/null;then
printf "%s is UP!\n" "$1"
else
printf "%s is DOWN!\n" "$1"