Skip to content

Instantly share code, notes, and snippets.

@labbots
labbots / ovpn_config_merge_split.sh
Last active May 28, 2022 07:04
Open VPN Config file with inline certificate and keys does not load in network-manager. So here is a simple script to automate the config creation. The script can be used to both merge and split ovpn config files. https://labbots.com/open-vpn-config-file-split-and-merge-bash/
#!/bin/bash
#https://bugs.launchpad.net/ubuntu/+source/network-manager-openvpn/+bug/606365
#http://howto.praqma.net/ubuntu/vpn/openvpn-access-server-client-on-ubuntu
#!/bin/bashset -e
function usage(){
echo -e "\nThe script can be used to split or merge ovpn file."
@labbots
labbots / file_cache_clean.sh
Last active December 22, 2016 16:21
Bash script to clean files in directory based on access time and created time. https://labbots.com/delete-stale-files-by-access-time-bash/
#!/bin/bash
#!/bin/bashset -e
# Script to cleanup cache files in file system.
# This script is used to make sure the cache folder does not exceed the set threshold limit in the server.
# The script can be configured as cron job in the server to monitor and delete older files in specified directory.
# The script sends out email if the script cannot bring the directory size below the threshold even after deleting
# files based on min and max access time and created time set in the script.
#
# Usage
@labbots
labbots / split_merge_file.sh
Last active December 22, 2016 16:21
Simple test to check the usage of dd command. This script allows to split a file into chunks and merge them back from chunks to original file using dd command in linux. https://labbots.com/split-and-merge-file-using-dd-command/
#!/bin/bash
#!/bin/bashset -e
PROGNAME=${0##*/}
SHORTOPTS="mbs:d:p:"
LONGOPTS="merge,split,source:,destination:,prefix:"
set -o errexit -o noclobber -o pipefail
OPTS=$(getopt -s bash --options $SHORTOPTS --longoptions $LONGOPTS --name $PROGNAME -- "$@" )
eval set -- "$OPTS"
@labbots
labbots / install_ubuntu_package.sh
Last active December 22, 2016 16:20
Script to install Ubuntu packages from package list file. If the package fails to install then report them in separate log file for manual installation. https://labbots.com/how-to-migrate-from-one-ubuntu-machine-to-another/
#!/bin/bash
#!/bin/bashset -e
VERBOSE=true
FILE="$1"
function log() {
error="$2"
if [[ "$VERBOSE" = true ]] || [[ "$error" = true ]] ; then
echo -e "${1}"
#lists contents of current directory with file permisions
alias ll='ls --color -l -sort'
#list all directories in current directories
alias ldir='ls -l | grep ^d'
# List directory and pipe output to less. Makes viewing of large directory easy
alias lsl="ls -lhFA --color | less -r"
#Find files in current directory
@labbots
labbots / color_script.sh
Last active May 6, 2020 13:50
Test script to understand bash script ANSII colour codes
#!/usr/bin/env bash
txtund=$(tput sgr 0 1) # Underline
txtbld=$(tput bold) # Bold
bldred=${txtbld}$(tput setaf 9) # red
bldblu=${txtbld}$(tput setaf 14) # blue
bldwht=${txtbld}$(tput setaf 10) # white
txtrst=$(tput sgr0) # Reset
info=${bldwht}*${txtrst} # Feedback
pass=${bldblu}*${txtrst}
@labbots
labbots / mime_type.sh
Created December 23, 2016 13:20
Get mime-type of a file based on extension if exists or by using file command
#!/bin/bash
FILE=$(basename $1)
FILENAME="${FILE%.*}"
EXTENSION="${FILE##*.}"
echo "$FILE"
echo "$FILENAME"
echo "$EXTENSION"
@labbots
labbots / replicate_db.sh
Created December 23, 2016 13:25
Script to replicate Mysql databases for local development
#!/bin/bash
source=${1}
destination=${2}
user=${3:-root}
pass=${4}
# Help menu
print_help() {
echo -e "
@labbots
labbots / SwitchPhp.sh
Last active April 5, 2023 18:01
Bash script to switch between available PHP versions in Ubuntu. (Tested in Ubuntu 16.04)
#!/bin/bash
# Check if ran with root permissions
if [ `id -u` -ne 0 ]; then
printf "The script must be run as root! (you can use sudo)\n"
exit 1
fi
function arrayContains {
local e match="$1"
@labbots
labbots / gitconfig
Created February 2, 2018 10:32
Git config
[user]
name = you name
email = you_email_address
[alias]
# nice log output
lg = log --graph --pretty=oneline --abbrev-commit --decorate
# start git-sh
sh = !git-sh
[color]
# turn on color