Skip to content

Instantly share code, notes, and snippets.

View geek-at's full-sized avatar
🐢

Christian Haschek geek-at

🐢
View GitHub Profile
@geek-at
geek-at / zfs_sync.php
Created February 28, 2022 19:21
PHP script that syncs remote ZFS snapshots to local dataset. Works with encrypted volumes
View zfs_sync.php
<?php
/*
Script that syncs remote zfs snapshots to a local zfs target.
Can sync remote encrypted datasets without ever needing to know the key on the local machine.
It will automatically search for the last snapshot in common with the remote host and only sync the differences.
If it doesn't find any local ones or has none in common, it will sync the oldest snapshot of the remote machine.
Meant to be run as cronjob
@geek-at
geek-at / zfs_sync_snapshots.php
Last active January 1, 2022 23:09
PHP script to receive all zfs snapshot of dataset from remote machine to local
View zfs_sync_snapshots.php
<?php
$remoteIP = $argv[1];
$remoteDataset = $argv[2];
$localDataset = $argv[3];
if($argc!=4) exit('usage: php sync.php <remote ip> <remote dataset> <local dataset>'.PHP_EOL);
$cmd_zfs = "zfs list -t snapshot $remoteDataset | cut -d ' ' -f 1 | cut -d '@' -f 2 | tail -n +2";
@geek-at
geek-at / trash.sh
Created August 13, 2020 07:27
The script used to trash a banking phishing site
View trash.sh
#!/bin/bash
while :; do
verf=$(cat /dev/urandom | tr -dc '0-9' | fold -w 8 | head -n 1)
pin=$(cat /dev/urandom | tr -dc '0-9' | fold -w 5 | head -n 1)
ip=$(printf "%d.%d.%d.%d\n" "$((RANDOM % 256))" "$((RANDOM % 256))" "$((RANDOM % 256))" "$((RANDOM % 256))")
@geek-at
geek-at / example.py
Created August 10, 2020 00:33
Python example for nsfw-categorize.it
View example.py
import requests
import json
url = 'https://nsfw-categorize.it/api/upload'
files = {'image':('1.jpg', open('1.jpg', 'rb'))}
r = requests.post(url, files=files)
result = json.loads(r.content)
if(result["status"]=='OK'):
print("This image is classified as "+str(result["data"]["classification"]))
@geek-at
geek-at / example.js
Created August 10, 2020 00:33
Node JS example for nsfw-categorize.it
View example.js
const request = require('request')
const fs = require('fs');
var req = request.post("https://nsfw-categorize.it/api/upload", function (err, resp, body) {
if (err) {
console.log('Error!');
} else {
var json = JSON.parse(body)
if(json.status=='OK')
console.log("This image has been classified as",json.data.classification)
@geek-at
geek-at / example.sh
Created August 10, 2020 00:32
Bash example for nsfw-categorize.it
View example.sh
#!/bin/sh
# Test image1.jpg
curl -s -F "image=@image1.jpg" "https://nsfw-categorize.it/api/upload"
# Let the API analyze an externally hosted image
curl -s "https://nsfw-categorize.it/api/upload?url=https://i.imgur.com/wubvFTM.jpeg"
@geek-at
geek-at / example.php
Created August 10, 2020 00:32
PHP example for nsfw-categorize.it
View example.php
<?php
$nsfw = new NSFW();
// Example 1: upload images to check later
//
$results = $nsfw->uploadFile('image1.jpg',true);
if(is_array($results))
echo "Classification done. Image is {$results['classification']}".PHP_EOL;
View irrigation.ino
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#define wifi_ssid "YourWIfiName"
#define wifi_password "YourWifiPassword"
const char* mqttServer = "192.168.1.61"; //IP of your MQTT Server
const int mqttPort = 1883; // Port of your MQTT server
//pins change these if you used different pins
View gist:645c4cb569a39d9958b2e64fa7221c36
### Keybase proof
I hereby claim:
* I am geek-at on github.
* I am geek_at (https://keybase.io/geek_at) on keybase.
* I have a public key ASAvzF9dHs0BRtZBYM5m2LiyWafirsvb6qDoy5Bn7B5p6wo
To claim this, I am signing this object:
@geek-at
geek-at / smartmeter.ino
Created October 19, 2018 08:34
Example script to log flashing light to influxdb via UDP. See https://blog.haschek.at/smartmeter for more info
View smartmeter.ino
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
WiFiUDP Udp;
const char* ssid = "yourwifiSSID";
const char* password = "yourwifipassword";
const int threshold = 400; //this is the threshold how high the value has to be to be registered as a flash.
//400 works great for me since flashes are usually ~600
IPAddress remoteIP(192,168,1,117); // the IP address of your Influxdb server