Skip to content

Instantly share code, notes, and snippets.

@liuyangc3
liuyangc3 / shadowsocks install.sh
Last active January 15, 2016 09:07
install shadowsocks on EC2
#!/bin/sh
add_source() {
# fix apt-get update 404 not found
# http://askubuntu.com/questions/244822/errors-running-apt-get-update-and-apt-get-install-mysql-server
cat << EOF
deb http://us.archive.ubuntu.com/ubuntu lucid main multiverse universe
deb http://us.archive.ubuntu.com/ubuntu lucid-security main multiverse universe
deb http://us.archive.ubuntu.com/ubuntu lucid-updates main multiverse universe
EOF
@liuyangc3
liuyangc3 / gist:2def8aa8f2b0db8c973cc0d1aca78957
Created January 9, 2019 04:57 — forked from sing1ee/gist:5971946
Google面试题:扔鸡蛋问题

###Google面试题:扔鸡蛋问题

####原题描述 两个软硬程度一样但未知的鸡蛋,它们有可能都在一楼就摔碎,也可能从一百层楼摔下来没事。有座100层的建筑,要你用这两个鸡蛋通过最少的次数确定哪一层是鸡蛋可以安全落下的最高位置。可以摔碎两个鸡蛋

####方法分析 看到这个题目,最保险的方法就是一层一层试验,但这样只需要一个鸡蛋就可以了。我们现在有两个鸡蛋,完全可以用有更快的方法。

进一步呢?可能试验的方法是二分查找,例如,第一个鸡蛋再50层扔下,如果碎了,第二个鸡蛋从1-49逐层试验;如果没碎,第一个鸡蛋在75层扔下,如果碎了,第二个鸡蛋从51-74逐层试验…但是,这个方法,很容易悲剧,例如,当正好49层是可以安全落下的,需要尝试50次。比只有一个鸡蛋的情况,效果还要差。

@liuyangc3
liuyangc3 / find-futex-wait.sh
Last active October 8, 2019 12:19 — forked from amr/find-futex-wait.sh
Find processes executing futex with FUTEX_WAIT (helps find deadlock-ed processes)
#!/bin/bash
#
# Find all processes that are executing a futex(2) call with op=FUTEX_WAIT
# In some cases this can be helpful in finding deadlock-ed processes.
#
test ! $UID -eq 0 && echo -e "WARNING: Not running as root, only processes for this user are being scanned\n" >&2;
pids=$(ps -u $UID -opid --no-headers)
sub_pid=$(($$+1))
@liuyangc3
liuyangc3 / remote network dump by nc
Last active November 19, 2019 04:14
dump network cap from remote
# windows installed Wireshark and cygwin
# open cygwin
nc -l 11233 | /c/Program\ Files/Wireshark/Wireshark -k -S -i -
# on reomote Linux box
tcpdump -i eth0 -n -s 0 not port 11233 or 22 -w -|nc <your windows ip> 11233
@liuyangc3
liuyangc3 / ca.md
Created May 29, 2020 06:00 — forked from soarez/ca.md
How to setup your own CA with OpenSSL

How to setup your own CA with OpenSSL

For educational reasons I've decided to create my own CA. Here is what I learned.

First things first

Lets get some context first.

@liuyangc3
liuyangc3 / keybase.md
Created December 16, 2020 03:08
keybase.md

Keybase proof

I hereby claim:

  • I am liuyangc3 on github.
  • I am liuyangc3 (https://keybase.io/liuyangc3) on keybase.
  • I have a public key ASDvUyBrV6i1MHOYQgY3SyotpR62nkvo3gkKtlUB8UNZxAo

To claim this, I am signing this object:

@liuyangc3
liuyangc3 / ITERM2.md
Last active March 17, 2021 02:50 — forked from YumaInaura/ITERM2.md
iTerm2 — search keyword and copy and paste text

iTerm2 — search keyword and copy and paste text

Output example

image

Command + F to start search mode

image

@liuyangc3
liuyangc3 / oidc-thumbprint-regions.sh
Last active July 13, 2021 02:22 — forked from riccardomc/oidc-thumbprint-regions.sh
Extract OIDC provider thumbprint for all AWS Region with EKS support
#!/bin/bash
# https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc_verify-thumbprint.html
set -e
if [ ! -z "$DEBUG" ] ; then
set -x
fi
@liuyangc3
liuyangc3 / parse_yaml.sh
Last active August 6, 2021 03:01 — forked from pkuczynski/parse_yaml.sh
Read YAML file from Bash script
#!/bin/sh
parse_yaml() {
local prefix=$2
local s='[[:space:]]*' w='[a-zA-Z0-9_]*' fs=$(echo @|tr @ '\034')
sed -ne "s|^\($s\)\($w\)$s:$s\"\(.*\)\"$s\$|\1$fs\2$fs\3|p" \
-e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" $1 |
awk -F$fs '{
indent = length($1)/2;
vname[indent] = $2;
for (i in vname) {if (i > indent) {delete vname[i]}}
#!/bin/sh
# this script allow you run a container attached to node with root privilege
# see https://securek8s.dev/exercise/65-privileged/
# usage:
# kubectl get nodes
# ./k8s_attach_node.sh <node name>
node=${1}
if [ -n "${node}" ]; then