Skip to content

Instantly share code, notes, and snippets.

@yurynix
yurynix / request.js
Created March 24, 2020 08:57
Lightweight request using native node http.request
/*
Usage example:
request({
url: tarballUrl,
headers: registry.headers,
dataHandler: dataBuffer => {
if (shasum) {
shasum.update(dataBuffer);
}
byteCount += dataBuffer.length;
@yurynix
yurynix / reset_dns.sh
Last active February 9, 2021 17:48
Reset DNS after GlobalProtect getting stuck
#!/bin/bash
scutil_primary_output=$(scutil << EOF
get State:/Network/Global/IPv4
d.show
EOF)
primary_interface=$(echo $scutil_primary_output | sed -n 's/.*PrimaryInterface : \([a-z0-9]*\).*/\1/p')
primary_service=$(echo $scutil_primary_output | sed -n 's/.*PrimaryService : \([A-Z0-9-]*\).*/\1/p')
#echo $primary_interface $primary_service
#exit;
const processStats = await getProcessStats();
printProcessStats(processStats);
processStats.forEach(processInfo => {
console.log(`Sending SIGKILL to pid: ${processInfo.pid} exe: ${processInfo.exe}`);
process.kill(processInfo.pid, 'SIGKILL');
});
try {
await downloadAndExtract(…);
} catch (ex) {
const errorMessage = ex.message;
if (errorMessage.indexOf('ENOSPC') > -1) {
console.log('Got ENOSPC! Check out df output:\n', await exec('df -h'));
}
throw ex;
}
console.log('Open FDs:', JSON.stringify(await getAllProcessFds()));
@yurynix
yurynix / console-log.js
Last active February 25, 2020 18:17
Blogpost
console.log(await exec('du -h / 2>&1 | grep -v "Permission denied"'));
@yurynix
yurynix / os-stats.js
Created February 13, 2020 10:27
Some useful stats from the proc filesystem
const util = require('util');
const fs = require('fs');
const readfile = util.promisify(fs.readFile);
const readdir = util.promisify(fs.readdir);
const readlink = util.promisify(fs.readlink);
const stat = util.promisify(fs.stat);
async function getProcessRSSMemory(pid) {
try {
const child_process = require('child_process');
const util = require('util');
const fs = require('fs');
const readfile = util.promisify(fs.readFile);
const readdir = util.promisify(fs.readdir);
const readlink = util.promisify(fs.readlink);
async function getRunningPids(): Promise<number[]> {
const files = await readdir(`/proc`);
@yurynix
yurynix / Create_ROOT_CA.md
Last active June 25, 2019 07:53
Create root CA

Create a certificate authority for dev purposes

This instructions allow you to create a root Certificate Authority and issue a certificate to "localhost", to improve local development expirience. Those instrusctions assume you use macOS

  1. create a root CA
  2. create certificate
  3. sign the certificate with root CA we created at (1)
  4. add root CA to the keychain via security
@yurynix
yurynix / get-process-with-intofiy-handles.js
Last active November 26, 2018 12:55
Get process with their inotify handles and watches counts
// based on https://unix.stackexchange.com/questions/15509/whos-consuming-my-inotify-resources/426001#426001
const fs = require('fs');
const { promisify } = require('util');
const readdirAsync = promisify(fs.readdir);
const readFileAsync = promisify(fs.readFile);
const readlinkAsync = promisify(fs.readlink);
(async function () {
if (process.platform !== 'linux') {