Skip to content

Instantly share code, notes, and snippets.

View rambabusaravanan's full-sized avatar

Andro Babu rambabusaravanan

  • Singapore
View GitHub Profile
@rambabusaravanan
rambabusaravanan / jailuser
Created October 2, 2017 03:37
Chroot Jail for SSH / SFTP User in Ubuntu and Debian
#!/bin/bash
D=/home/www-sftp
U=$1
if [ "$EUID" -ne 0 ]; then
echo "Requires root permission .."
echo "Usage: 'sudo $0 newusername'"
exit 1
fi
@rambabusaravanan
rambabusaravanan / s3-bucket-access.json
Last active August 24, 2017 14:03
AWS Policies - Bucket Policy
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::example.com"
@rambabusaravanan
rambabusaravanan / lambda-email.py
Last active November 7, 2023 03:35
AWS Lambda Function to send SMTP Email
import smtplib
import os
def send_email(host, port, username, password, subject, body, mail_to, mail_from = None, reply_to = None):
if mail_from is None: mail_from = username
if reply_to is None: reply_to = mail_to
message = """From: %s\nTo: %s\nReply-To: %s\nSubject: %s\n\n%s""" % (mail_from, mail_to, reply_to, subject, body)
print (message)
try:
@rambabusaravanan
rambabusaravanan / apache.conf
Last active December 21, 2023 12:01
SPA - Apache, Nginx Configuration for Single Page Application like React.js on a custom path
# To host on root path just use "<Location />" for http://mydomainname.in
# To host on non-root path use "<Location /myreactapp>" for http://mydomainname.in/mypath
# If non-root path, don't forgot to add "homepage": "/myreactapp" in your app's package.json
<VirtualHost *:80>
ServerName mydomainname.in
DirectoryIndex index.html
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
@rambabusaravanan
rambabusaravanan / apache-stat.sh
Created April 30, 2017 02:51
Apache Log Stat Analyser
// Daily
awk '{print $4}' /var/log/apache2/$1/access.log | cut -d: -f1 | uniq -c
// Hourly
grep "`date +%d/%b/%Y`" /var/log/apache2/$1/access.log | cut -d[ -f2 | cut -d] -f1 | awk -F: '{print $2":00"}' | sort -n | uniq -c
// IP-Based
grep 'text' /var/log/apache2/$1/access.log | cut -d' ' -f1 | sort | uniq -c | sort -r
@rambabusaravanan
rambabusaravanan / utils.php
Created April 1, 2017 17:20
PHP Utility Functions - Arrays
<?php
function array_table_innerjoin(Array $leftArr, Array $rightArr, String $key) {
$mergeArray = [];
foreach($leftArr as $leftRow) {
foreach($rightArr as $rightRow) {
if(isset($leftRow[$key]) && isset($rightRow[$key]) && $leftRow[$key] == $rightRow[$key]) {
$mergeArray[] = array_merge($leftRow, $rightRow);
}
}
@rambabusaravanan
rambabusaravanan / detect-js-framework.js
Last active April 25, 2024 11:31
Detect JS Framework used in a Website
// Paste these lines into website's console (Win/Linux: Ctrl + Shift + I / Mac: Cmd + Alt + I)
if(!!window.React ||
!!document.querySelector('[data-reactroot], [data-reactid]') ||
Array.from(document.querySelectorAll('*')).some(e => e._reactRootContainer !== undefined || Object.keys(e).some(k => k.startsWith('__reactContainer')))
)
console.log('React.js');
if(!!document.querySelector('script[id=__NEXT_DATA__]'))
console.log('Next.js');
@rambabusaravanan
rambabusaravanan / archive-backup.s3.sh
Last active May 11, 2017 16:32
Backup MySQL Database, Archive, Filesystem Sync to Amazon S3
#!/bin/sh
# src details
SRCPATH='/path/of/target'
SRCFILE='file-or-directory'
# s3 details
S3BUCKET='bucketname'
S3PATH='path/in/bucket'
S3REGION='us-east-1'
TMPDIR='/tmp/s3'
@rambabusaravanan
rambabusaravanan / jquery.serializeObject.js
Last active September 30, 2019 10:40
jQuery Serialize Object (JSON)
/**
* Usage: var json = $('#form-login').serializeObject();
* Output: {username: "admin", password: "123456"}
* Output: {username: "admin", password: "123456", subscription: ["news","offer"]}
* */
$.fn.serializeObject = function() {
var obj = {};
var arr = this.serializeArray();
arr.forEach(function(item, index) {
@rambabusaravanan
rambabusaravanan / .gitconfig
Last active March 17, 2024 10:31
Git Diff and Merge Tool - IntelliJ IDEA
# Linux
# add the following to "~/.gitconfig" file
[merge]
tool = intellij
[mergetool "intellij"]
cmd = /usr/local/bin/idea merge $(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$REMOTE") && pwd)/$(basename "$REMOTE") $(cd $(dirname "$BASE") && pwd)/$(basename "$BASE") $(cd $(dirname "$MERGED") && pwd)/$(basename "$MERGED")
trustExitCode = true
[diff]