Skip to content

Instantly share code, notes, and snippets.

@ouyi
ouyi / java_thread_dump.sh
Created Jan 27, 2018
Thread dump in Java
View java_thread_dump.sh
top # list processes, shift+p to sort processes by CPU usage
top -H -p <pid> # list threads, shift+p to sort threads by CPU usages
printf "%x\n" <tid> # convert tid to hexadecimal, called nid
jstack -l <pid> | grep -i <nid> -A 15 # get stack trace of the thread
@ouyi
ouyi / docker_child_images.sh
Created Feb 15, 2018
Find docker child images
View docker_child_images.sh
image_id="$1"
for i in $(docker images -q); do
docker history $i | grep -q "$image_id" && echo $i;
done | sort -u
@ouyi
ouyi / intellij_mac_german_keyboard_shotcuts.txt
Last active Mar 11, 2018
Intellij MacOS German keyboard shortcuts
View intellij_mac_german_keyboard_shotcuts.txt
go to file begin/end:
fn + cmd + <-/->
file structure popup:
fn + cmd + F12
search everywhere:
shift shift
search for classes:
View PrintJvmOptions.java
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import java.util.List;
public class PrintJvmOptions {
public static void main(String[] args) {
RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean();
List<String> options = runtimeMxBean.getInputArguments();
for(String o : options) {
System.out.println(o);
@ouyi
ouyi / jdk_keystore.sh
Created Apr 11, 2018
Commands for working with Java keystore
View jdk_keystore.sh
$ sudo keytool -storepass changeit -import -file /tmp/root.crt -noprompt -alias my-trusted-ca -keystore /Library/Java//JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/security/cacerts
Password:
Certificate was added to keystore
// changeit is the Java default keystore password
$ keytool -storepass changeit -list -keystore /Library/Java//JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/security/cacerts | grep my-trusted-ca
my-trusted-ca, Apr 11, 2018, trustedCertEntry,
@ouyi
ouyi / s2s_copy.sh
Last active Jul 18, 2018
Server-to-server file copying
View s2s_copy.sh
#/usr/bin/env bash
set -euo pipefail
src_host="$1"
src_path="$2"
dst_host="$3"
dst_path="$4"
pattern="${5:-*}"
@ouyi
ouyi / setup_openvpn.sh
Last active Oct 16, 2021
Setting up OpenVPN with Docker in a public cloud
View setup_openvpn.sh
# Install docker
yum check-update
curl -fsSL https://get.docker.com/ | sh
systemctl start docker
systemctl status docker
systemctl enable docker
systemctl status docker
# Set up the server-side of things
@ouyi
ouyi / daterange.py
Last active Oct 4, 2018
A command-line tool to work with dates
View daterange.py
#/usr/bin/env python
import sys, argparse, pytz
from datetime import datetime, timedelta
DEFAULT_DATETIME_FORMAT = '%Y%m%d'
SECONDS_IN_A_DAY = 3600 * 24
def main():
parser = argparse.ArgumentParser(description='A command-line tool to work with dates')
@ouyi
ouyi / jinja2_file_less.py
Created Sep 7, 2018 — forked from wrunk/jinja2_file_less.py
python jinja2 examples
View jinja2_file_less.py
#!/usr/bin/env/python
#
# More of a reference of using jinaj2 without actual template files.
# This is great for a simple output transformation to standard out.
#
# Of course you will need to "sudo pip install jinja2" first!
#
# I like to refer to the following to remember how to use jinja2 :)
# http://jinja.pocoo.org/docs/templates/
#
@ouyi
ouyi / bash_parameter_expansion.txt
Last active Oct 20, 2018
Bash parameter expansion
View bash_parameter_expansion.txt
## Indirect expansion
# aax="x"
# aay="y"
# var_name="aax"
# echo ${!var_name}
x
# var_name="aay"