Skip to content

Instantly share code, notes, and snippets.

Avatar
😃
Not affected by COVID-19

Lake Chan StoneMoe

😃
Not affected by COVID-19
View GitHub Profile
@StoneMoe
StoneMoe / unicorn.py
Created Jan 30, 2021
Simple preforking echo server in Python
View unicorn.py
"""
Simple preforking echo server in Python.
Python port of http://tomayko.com/writings/unicorn-is-unix.
"""
import os
import sys
import socket
View non-root-yum-install.sh
#!/bin/bash
# Source https://stackoverflow.com/questions/36651091/how-to-install-packages-in-linux-centos-without-root-user-with-automatic-depen
pkgname=$1
if [ -z $pkgname ]; then
echo "Usage: ./non-root-yum-install.sh pkgname-here"
exit 1
fi
rand=$(openssl rand -base64 6)
@StoneMoe
StoneMoe / migrate.sh
Last active Jul 14, 2020
volume to volume
View migrate.sh
# make tarball from sentry_pgdb volume
docker run --rm -v sentry_pgdb:/var/lib/postgresql/data -v (pwd):/backup busybox tar cvf /backup/backup.tar /var/lib/postgresql/data
# create a sentry-postgres volum
docker volume create sentry-postgres
# restore to sentry-postgres volume
# NOTE: tarball will keep absolute path folder structure, so we don't need specify the target extract path
docker run --rm -v sentry-postgres:/var/lib/postgresql/data -v (pwd):/backup busybox tar xvf /backup/backup.tar
@StoneMoe
StoneMoe / traceicmpsoftirq.py
Created Dec 19, 2019 — forked from iAklis/traceicmpsoftirq.py
ICMP packet tracer using BCC
View traceicmpsoftirq.py
#!/usr/bin/python
bpf_text = """
#include <linux/ptrace.h>
#include <linux/sched.h> /* For TASK_COMM_LEN */
#include <linux/icmp.h>
#include <linux/netdevice.h>
struct probe_icmp_data_t
{
u64 timestamp_ns;
u32 tgid;
@StoneMoe
StoneMoe / supervisor.conf
Created Sep 26, 2019 — forked from hezhao/supervisor.conf
Example supervisor config file /etc/supervisor/conf.d/myapp.conf
View supervisor.conf
[program:myapp]
autostart = true
autorestart = true
command = python /home/pi/myapp.py
environment=SECRET_ID="secret_id",SECRET_KEY="secret_key_avoiding_%_chars"
stdout_logfile = /home/pi/stdout.log
stderr_logfile = /home/pi/stderr.log
startretries = 3
user = pi
@StoneMoe
StoneMoe / README.md
Created Sep 25, 2019 — forked from denji/README.md
Simple Sentry docker-compose.yml
View README.md
  1. Download docker-compose.yml to dir named sentry
  2. Change SENTRY_SECRET_KEY to random 32 char string
  3. Run docker-compose up -d
  4. Run docker-compose exec sentry sentry upgrade to setup database and create admin user
  5. (Optional) Run docker-compose exec sentry pip install sentry-slack if you want slack plugin, it can be done later
  6. Run docker-compose restart sentry
  7. Sentry is now running on public port 9000
@StoneMoe
StoneMoe / tmux.md
Created Jan 8, 2019 — forked from andreyvit/tmux.md
tmux cheatsheet
View tmux.md

tmux cheat sheet

(C-x means ctrl+x, M-x means alt+x)

Prefix key

The default prefix is C-b. If you (or your muscle memory) prefer C-a, you need to add this to ~/.tmux.conf:

# remap prefix to Control + a
@StoneMoe
StoneMoe / eventlet_patcher.py
Created Mar 7, 2018
Monkey patch for eventlet wsgi environ string bug
View eventlet_patcher.py
def eventlet_patcher():
# Ref: https://github.com/eventlet/eventlet/pull/467
# Ref: https://github.com/eventlet/eventlet/issues/468
from eventlet.wsgi import HttpProtocol
def new_get_environ(self):
env = self.server.get_environ()
env['REQUEST_METHOD'] = self.command
env['SCRIPT_NAME'] = ''
@StoneMoe
StoneMoe / python_engineio_patcher.py
Last active Jan 15, 2019
Monkey patch for Python-EngineIO JSONP-Polling support
View python_engineio_patcher.py
# For Python-EngineIO 2.0.2
def engine_io_patcher():
from engineio.payload import Payload as eio_Payload
from engineio.server import Server as eio_Server
original_handle_request = eio_Server.handle_request
def new_eioserv__ok(self, packets=None, headers=None, b64=False, jsonp_seq=None):
"""response generator."""
if packets is not None:
if headers is None: