Skip to content

Instantly share code, notes, and snippets.

View rubenmromero's full-sized avatar
☁️
Focusing

Ruben Martin rubenmromero

☁️
Focusing
View GitHub Profile
@rubenmromero
rubenmromero / clean_deploy.php
Created August 27, 2018 13:08
PHP :: Web service to clean and deploy a repository to which it belongs on a server through a webhook
<?php
//Deploy the current version from master branch of the project
$document_root = "<repository_root_folder>";
echo "Clean untracked files on server:";
$output = shell_exec("git clean -d --force $document_root 2>&1");
echo "<pre>$output</pre>";
echo "Revert modified files (not staged) on server...";
$output = shell_exec("git checkout -- $document_root 2>&1");
@rubenmromero
rubenmromero / pull_repos.sh
Last active February 19, 2018 23:24
Bash :: Pull changes from the origin (develop if it exists and master branches) to all Git repositories cloned in a workspace
#!/bin/bash
#
# Commands Definition
#
ECHO="echo -e"
TPUT_BOLD="tput bold"
TPUT_RED="tput setaf 1"
TPUT_OFF="tput sgr0"
@rubenmromero
rubenmromero / mysql_backup.sh
Last active October 21, 2018 11:03
Bash :: Create and rotate backups of all databases stored in MySQL
#!/bin/bash
#
# Variables Definition
#
BACKUPS_DIR=/var/backups/database
DUMP_REFIX=mysql_dump
DUMP_FILE=${BACKUPS_DIR}/${DUMP_REFIX}-$(/bin/date +%Y_%m_%d-%H_%M).sql
MYSQL_USER=<superuser>
MYSQL_PASSWD='<password>'
@rubenmromero
rubenmromero / git_rm_large_files.sh
Created January 7, 2018 12:52
Bash :: Find and remove large files in Git history
#!/bin/bash
set -o verbose
# Checkout and pull in the local copy of all existing branches in the repository
for branch in $(git branch -a |grep remotes/origin |grep -v HEAD |sed "s/remotes\/origin\///g")
do
git checkout $branch
git pull
done
@rubenmromero
rubenmromero / nginx_headers_redirect
Last active December 2, 2017 09:22
Nginx :: Redirect requests to another environment based on received header values
####################################################################################################
### Virtual Host for api.<env1_domain> subdomain
####################################################################################################
# Block to redirect requests from the new versions of the mobile apps to the second environment, which also has the new version of backend services
map $http_X_app_version $is_new_version {
default "0";
ANDROID_30 "1";
IOS_30 "1";
}
@rubenmromero
rubenmromero / local-mongo-replicaset-with-docker
Last active December 2, 2017 08:59 — forked from simon-contreras-deel/local-mongo-replicaset-with-docker
Bash :: Run local MongoDB Replica Set with Docker
# pull the official mongo docker container
docker pull mongo
# create network
docker network create my-mongo-cluster
# create mongos
docker run -d --net my-mongo-cluster -p 27017:27017 --name mongo1 mongo mongod --replSet my-mongo-set --port 27017
docker run -d --net my-mongo-cluster -p 27018:27018 --name mongo2 mongo mongod --replSet my-mongo-set --port 27018
docker run -d --net my-mongo-cluster -p 27019:27019 --name mongo3 mongo mongod --replSet my-mongo-set --port 27019
@rubenmromero
rubenmromero / rds_rotate_general_log.py
Last active May 5, 2019 23:51
Python :: Script to rotate the content of 'mysql.general_log' table to 'mysql.general_log_backup', by executing 'mysql.rds_rotate_general_log' stored procedure
#!/usr/bin/env python
#
# Modules Import
#
import mysql.connector
from mysql.connector import errorcode
#
# Variables Definition
@rubenmromero
rubenmromero / VagrantBoxCleanerCentOS.sh
Last active August 27, 2018 12:54 — forked from pedroamador/VagrantBOXCleanerCentos
Bash :: Vagrant Box Cleaner for CentOS / Red Hat
# Clear yum packages
yum clean all
# Zero out the free space to save space in the final image:
dd if=/dev/zero of=/EMPTY bs=1M
rm -f /EMPTY
# Removing leftover leases and persistent rules
echo "cleaning up dhcp leases"
rm -f /var/lib/dhclient/*
@rubenmromero
rubenmromero / VagrantBoxCleanerDebian.sh
Last active August 27, 2018 12:58 — forked from pedroamador/VagrantBoxCleanerDebian
Bash :: Vagrant Box Cleaner for Debian / Ubuntu
apt-get -y autoremove
apt-get clean
# Zero out the free space to save space in the final image:
dd if=/dev/zero of=/EMPTY bs=1M
rm -f /EMPTY
# Removing leftover leases and persistent rules
echo "cleaning up dhcp leases"
rm /var/lib/dhcp/*
@rubenmromero
rubenmromero / deploy.py
Last active May 5, 2019 23:52
Python :: Web service to deploy a repository on a server through a webhook
#!/usr/bin/env python
#
# Modules Import
#
import os, sys, shlex, subprocess
#
# Variables Definition
#