Skip to content

Instantly share code, notes, and snippets.

依云 lilydjwg

Block or report user

Report or block lilydjwg

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@lilydjwg
lilydjwg / gh-check
Created Aug 16, 2019
gh-check: speed test to known GitHub IPs
View gh-check
#!/usr/bin/python3
import asyncio
import time
import socket
import sys
import aiohttp
class MyConnector(aiohttp.TCPConnector):
@lilydjwg
lilydjwg / findorphanfiles
Created Aug 3, 2019
Find files not managed by pacman (for Arch Linux and derivatives)
View findorphanfiles
#!/usr/bin/python3
import os
def allrepofiles():
repo = '/var/lib/pacman/local'
files = set()
for dirpath, dirnames, filenames in os.walk(repo):
for file in filenames:
if file != 'files':
View btrfs-autosnapshot
#!/usr/bin/python3
import os
import datetime
import subprocess
import logging
import tempfile
import contextlib
import ctypes
from pathlib import Path
@lilydjwg
lilydjwg / show-mem-usage
Last active Jul 20, 2019
show-mem-usage: parse /proc/{pid}/maps and show how much memory is used by each file/type
View show-mem-usage
#!/usr/bin/python3
'''parse /proc/{pid}/smaps and show how much RSS memory is used by each file/type'''
import sys
from collections import defaultdict
def filesize(size: int) -> str:
units = 'KMGTPEZY'
left = abs(size)
@lilydjwg
lilydjwg / mosh3.py
Created Nov 13, 2018
mosh3: a mosh helper that reuses ssh connections (ControlMaster)
View mosh3.py
#!/usr/bin/env python3
# inspired by
# https://github.com/mobile-shell/mosh/issues/24#issuecomment-201893250
import sys
import os
import subprocess
def main():
@lilydjwg
lilydjwg / cleanup_haozip.py
Last active Jun 16, 2019
cleanup HaoZip file extension registration
View cleanup_haozip.py
# Note: admin privileges is necessary
import winreg
i = 0
while True:
key = winreg.EnumKey(winreg.HKEY_CLASSES_ROOT, i)
value = winreg.QueryValue(winreg.HKEY_CLASSES_ROOT, key)
if value.startswith('HaoZip.'):
print(f'Deleting {key} ({value})...', end='', flush=True)
@lilydjwg
lilydjwg / git-ls-large
Created Dec 31, 2017
git-ls-large: find large objects in your git repo
View git-ls-large
#!/bin/bash -e
if [[ $# -gt 1 ]]; then
idx=($@)
else
idx=(.git/objects/pack/pack-*.idx)
fi
objects=$(git verify-pack -v "${idx[@]}" | grep -v -e 'non delta' -e 'chain length' -e '.git/objects' | sort -k3nr | head)
@lilydjwg
lilydjwg / readonlyroot
Created May 15, 2017
readonlyroot: make / readonly but permit writes to some paths
View readonlyroot
#!/bin/bash -e
if [[ $EUID -ne 0 ]]; then
echo >&2 "Need to be root."
exit 1
fi
if ! mountpoint /mnt >/dev/null; then
exit 2
fi
@lilydjwg
lilydjwg / zfs-show
Created Jan 1, 2017
zfs-show: a wrapper to `zfs get` to show values from multiple properties in a table nicely
View zfs-show
#!/usr/bin/env python3
import sys
import subprocess
from collections import namedtuple, OrderedDict
Record = namedtuple('Record', 'name property value source')
def get_widths(item):
return [len(x) for x in item.values()]
@lilydjwg
lilydjwg / mynetns_run
Created May 13, 2016
mynetns_run: Run a program in a seperate network namespace
View mynetns_run
#!/bin/bash -e
NETNS_FILE=/var/run/netns/mynet
MNTNS_FILE=/var/run/ns/mynet_mnt
if [[ ! -f $NETNS_FILE ]]; then
ip netns add mynet
ip link add mynet0 type veth peer name mynet1
ip link set mynet0 up
You can’t perform that action at this time.