Skip to content

Instantly share code, notes, and snippets.

@zengxinhui
zengxinhui / gzlib.py
Created March 30, 2025 16:04
given a book title, find it's category according to gzlib.org.cn
import requests, re
filename='Books.txt'
def gzlib(q):
url=f'https://opac.gzlib.org.cn/opac/search?q={q}&searchWay=title'
response = requests.get(url)
bookrecno = set(re.findall(r'bookDetail\((\d+)', response.text))
if len(bookrecno) == 1:
bookrecno = bookrecno.pop()
@zengxinhui
zengxinhui / juniper.eol.py
Created March 30, 2025 14:23
parse junos eol
import re, requests
from lxml import html
url = 'https://support.juniper.net/support/eol/software/junos/'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
response = requests.get(url, headers=headers)
@zengxinhui
zengxinhui / click.js
Created February 22, 2025 16:35
click a button repeatedly
function clickButton() {
const button = document.querySelector('.oui-savant__Panel--Footer .oui-button-primary')
if (button) {
button.click();
console.log('Button clicked successfully at ' + new Date().toLocaleTimeString());
} else {
console.log('Button not found - check if .divclass .buttonclass exists');
}
}
@zengxinhui
zengxinhui / tshark.sh
Created April 17, 2024 04:31
group by tcp stream and output the last 10 packets captured to see how a connection ended.
tshark -r xyz.pcapng -Y "tcp.port != 445" -T fields -e tcp.stream -e frame.time_relative -e ip.src -e ip.dst -e _ws.col.info | sort -V | awk 'BEGIN {
prev = 0;
count = 0;
} {
buffer[NR % 11] = $0;
if ($1 != prev) {
for (i = NR-count; i<NR; i++)
print buffer[i % 11];
print "";
prev = $1;
@zengxinhui
zengxinhui / domain.xml
Created February 4, 2024 03:49 — forked from Informatic/domain.xml
How to use Windows 10 OEM license in libvirt VM (<smbios mode='host' /> does not work as Windows seems to verify UUID; apparmor/security configuration changes may be needed)
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
<!-- ... -->
<qemu:commandline>
<qemu:arg value='-acpitable'/>
<qemu:arg value='file=/some/path/slic.bin'/>
<qemu:arg value='-acpitable'/>
<qemu:arg value='file=/some/path/msdm.bin'/>
<qemu:arg value='-smbios'/>
<qemu:arg value='file=/some/path/smbios_type_0.bin'/>
<qemu:arg value='-smbios'/>
import hashlib, os, sqlite3, sys
con = sqlite3.connect("hash.db")
cur = con.cursor()
cur.execute("delete from files")
for root, dirs, files in os.walk(sys.argv[1]):
for file in files:
filename = root + "/" + file
with open(filename, 'br') as f:
@zengxinhui
zengxinhui / finddup.clj
Last active November 2, 2023 14:55
Find Duplicate Files
#!/usr/bin/env bb
;; babashka/clojure
(import 'java.security.MessageDigest)
(def SCAN_DIRS ["."])
(def MIN_FILE_SIZE (* 1))
(def SHA256_CHUNK_SIZE (* 1024 8))
@zengxinhui
zengxinhui / convert2deb.sh
Last active February 22, 2025 23:43
Replace Oracle Cloud Linux with Debian remotely
[02/22/2025]
Refs:
1. http://mirror.cs.pitt.edu/archlinux/iso/2023.09.01/archlinux-bootstrap-2023.09.01-x86_64.tar.gz
2. https://dl-cdn.alpinelinux.org/alpine/v3.18/releases/x86_64/alpine-virt-3.18.0-x86_64.iso
3. https://wiki.alpinelinux.org/wiki/Replacing_non-Alpine_Linux_with_Alpine_remotely
4. https://www.debian.org/releases/bookworm/amd64/apds03.en.html
See also:
1. Convert to Debian https://gist.github.com/zengxinhui/ee0ad6b7c7f99e2ead6cd0d2bd6641fd
@zengxinhui
zengxinhui / CPUUsage.ps
Last active August 1, 2023 14:16
Simple CPU usage monitoring
$usageQueue = @()
while ($true) {
$currentDateTime = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
$cpuUsage = Get-Counter '\Processor(_Total)\% Processor Time'
$cpuUsageValue = $cpuUsage.CounterSamples.CookedValue
$usageQueue += $cpuUsageValue
if ($usageQueue.Count -eq 13) {
@zengxinhui
zengxinhui / convert2arch_arm.sh
Last active March 1, 2025 19:48
Replace Oracle Cloud Linux with Arch Linux ARM remotely
[02/25/2025]
Refs:
1. http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz
2. https://dl-cdn.alpinelinux.org/alpine/v3.21/releases/aarch64/alpine-virt-3.21.3-aarch64.iso
3. https://wiki.alpinelinux.org/wiki/Replacing_non-Alpine_Linux_with_Alpine_remotely
4. https://wiki.archlinux.org/index.php/installation_guide#Configure_the_system
5. https://archlinuxarm.org/platforms/armv8/generic
See also: