Skip to content

Instantly share code, notes, and snippets.

View kzap's full-sized avatar
🏠
Working from home

Andre Marcelo-Tanner kzap

🏠
Working from home
View GitHub Profile
@kzap
kzap / scan-php-exploits.sh
Last active October 11, 2015 16:47
Scan for a file with possible malicious PHP code in it
/usr/bin/find /DIRECTORY/TO/SCAN/ -type f -print0 | /usr/bin/xargs -0 grep 'eval(\$' | /usr/bin/mail -s 'Scan Report' yourname@email.com
@kzap
kzap / addControllerMap.php
Created October 20, 2012 01:35
klein.php controller#action helper function
<?php
function addControllerMap($controllerMapCollection, $method = array('GET', 'POST'), $route = '*', $controllerMap = null) {
global $__controllerMaps;
// parse arguments
$args = func_get_args();
switch (count($args)) {
case 1:
$controllerMap = $controllerMapCollection;
@kzap
kzap / gist:5819745
Last active May 27, 2020 23:09
If you want to give only Travis-CI access to a private key or secret file in your repository, you will need to encrypt it, but rather than storing the entire encrypted file in an environment variable, just store the a secret password in a secure environment variable that you will use to encrypt and decrypt your private key file. The encryption o…
# generate your private key, put the public key on the server you will be connecting to
ssh-keygen -t rsa -f ./my_key
# generate the password/secret you will store encrypted in the .travis.yml and use to encrypt your private key
cat /dev/urandom | head -c 10000 | openssl sha1 > ./secret
# encrypt your private key using your secret password
openssl aes-256-cbc -pass "file:./secret" -in ./my_key -out ./my_key.enc -a
# download your Travis-CI public key via the API. eg: https://api.travis-ci.org/repos/travis-ci/travis-ci/key
@kzap
kzap / mongo-backup.sh
Last active August 29, 2015 13:56
Simple backup script for Mongodump. Requires mongodump from mongoclients debian package
TODAY=`date +"%Y%m%d_%H%M%S"` # todays date Y-M-D
MONGODUMP=/usr/bin/mongodump # Path to mongodump
[ -x "${MONGODUMP}" ] || (echo "${MONGODUMP}" not found or not executable; exit 1)
FIND=/usr/bin/find # Path to find
MONGO_BACKUP=/var/spool/mongobackup # Path to your mongo backup directory
MONGO_BACKUP_TODAY="${MONGO_BACKUP}"/"${TODAY}"/ # Path to the directory per day
DAYS_RETENTION=7 # How many days of backups do you wish to keep
MONGO_HOST='127.0.0.1' # Host
MONGO_PORT=27017 # Port
@kzap
kzap / gist:9437363
Created March 8, 2014 19:15
MixPanel Wordpress Tracking Snippet - Add to the end of your WP Theme's functions.php file. Replace YOUR_MIXPANEL_TOKEN with the one from your MixPanel account.
<?php
add_action('wp_head', 'mixpanel_meta_codes');
function mixpanel_meta_codes() {
?>
<!-- start Mixpanel --><script type="text/javascript">(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src=("https:"===e.location.protocol?"https:":"http:")+'//cdn.mxpnl.com/libs/mixpanel-2.2.min.js';f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f);b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==
typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.
@kzap
kzap / gist:e26856adfcc73d8089d7
Created October 27, 2014 09:17
how to recreate a journal
umount /dev/xvdd1 (unmount the partition)
fsck -y /dev/xvdd1 (do an initial file system check)
tune2fs -O ^has_journal /dev/xvdd1 (remove the existing journal)
fsck -y /dev/xvdd1 (do a further file system check)
tune2fs -j /dev/xvdd1 (recreate the journal)
@kzap
kzap / fealty_segmentio_tracking.js
Created January 21, 2015 11:28
Code for doing Register Once traits using Segment.com using a Cookie, this mimics the registerOnce function of MixPanel
var _optly = {
updateQueryString: function(key, value, url) {
if (!url) url = window.location.href;
var re = new RegExp("([?|&])" + key + "=.*?(&|#|$)(.*)", "gi");
if (re.test(url)) {
if (typeof value !== 'undefined' && value !== null)
return url.replace(re, '$1' + key + "=" + value + '$2$3');
else {
var hash = url.split('#');
@kzap
kzap / plupload-formsubmit.js
Created May 22, 2015 03:02
plupload upload before submitting form
// Client side form validation
$("form").submit(function(e) {
var uploader = $("#uploader").pluploadQueue();
// Validate number of uploaded files
if (uploader.total.uploaded == 0) {
// Files in queue upload them first
if (uploader.files.length > 0) {
// When all files are uploaded submit form
uploader.bind("StateChanged", function() {
@kzap
kzap / useful
Last active August 29, 2015 14:23
Useful Unix Commands
#sql-restore-files
for SQL in *.sql.gz; do DB=${SQL/\.sql.gz/}; echo importing $DB; zcat $SQL | mysql -u root --password='{PASSWORD}' $DB; done
#backup all directories and compress them
find ./* -maxdepth 0 -type d -exec echo "Archiving {}" \; -exec tar -cjf "{BACKUP_DIR}/{}-{DATE}.tar.bz2" \;
#find and replace in files recursive without touching files that dont match
find ./ -type f -name '*.php' -print0 | xargs -0 grep 'FIND' -l | xargs sed -i 's/FIND/REPLACE/g'
#apache max clients recommendation
@kzap
kzap / create-lvm.sh
Created June 26, 2015 02:28
LVM Script
echo RTFM >&2;
exit -1;
N=1
yum install -y lvm2
D=$(grep "unknown partition table" /var/log/messages | tail -n 1 | perl -pe 's/.*: ([^:]*): unknown.*/$1/g');
D=/dev/$D
pvcreate $D
vgcreate vg_$N $D
S=$(vgdisplay vg_$N | grep Total | perl -pe 's/[^0-9]+//g')