# Image from PDF
magick convert -density 300 -rotate 90 -compress lossless input.pdf[0] output.jpg
# Icon from multiple images
magick convert image1.png image2.png image3.png favicon.ico
# Create favicon.ico with multiple sizes
magick convert favicon.png -define icon:auto-resize=96,64,48,32,16 favicon.ico
# Convert multiple images to jpeg with reduces size
magick mogrify -path out -format jpg -quality 80 -resize "1200x1200>" *.heicMonthly Archives: February 2026
postfix
# Show current mail queue
mailq
# Send messages in queue
postqueue -f
# Delete message from queue
postsuper -d MSGID
# Print message from queue
postcat -q MSGID
# Show mail statistics
cat /var/log/mail.log | pflogsumm
# Rebuild aliases
newaliasesjournalctl
# Follow postfix mail log with 40 records loaded on start
journalctl -f -u postfix@-.service -n 40
# Get one day old records
journalctl -u postfix@-.service --since "1 days ago"
# Get first 100 records since
journalctl --since "2026-03-27 07:00:00" --no-pager | head -100du
# Find files / directories bigger than 1GB
du -a --threshold=1G ./
# Top 20 directories by size
du -a / --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/lost+found | sort -n -r | head -n 20
# Get directory size recursively
du -hs ./patch
# Create patch for file
diff -Naur original_file modified_file > changes.patch
# Test
patch --dry-run file_to_be_patched changes.patchgrep
# Search in files
grep -rnw '/path/to/somewhere/' -e 'pattern'Convert 2FAuth TOTP codes to Bitwarden Authenticator
- Select codes in 2FAuth and export them as a list of otpauth URIs.
- Save the Python script below as
convert-2fauth-to-bitwarden.py - Run the command below to create Bitwarden Authenticator JSON export file.
python3 convert-2fauth-to-bitwarden.py -o bitwarden_export.json 2fauth_export_otpauth.txt
#!/usr/bin/env python3
import json
import uuid
import argparse
def parse_otpauth_uri(uri):
parts = uri.split('?')
label = parts[0].split('/')[-1]
service, account = label.split(':', 1) if ':' in label else (label, '')
return {'service': service, 'account': account}
def convert_otpauth_to_bitwarden(input_file, output_file):
with open(input_file, 'r', encoding='utf-8') as f:
uris = [line.strip() for line in f if line.strip().startswith('otpauth://')]
items = []
for uri in uris:
parsed = parse_otpauth_uri(uri)
bw_item = {
"id": str(uuid.uuid4()).upper(),
"type": 1,
"name": f"{parsed['service']}",
"favorite": False,
"login": {
"username": parsed['account'],
"totp": uri,
}
}
items.append(bw_item)
output = {"encrypted": False, "items": items}
with open(output_file, 'w', encoding='utf-8') as f:
json.dump(output, f, indent=2, ensure_ascii=False)
print(f"Converted {len(items)} items to {output_file}")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Convert otpauth URIs → Bitwarden JSON")
parser.add_argument("input", help="File with otpauth URIs")
parser.add_argument("-o", "--output", default="bitwarden_export.json")
args = parser.parse_args()
convert_otpauth_to_bitwarden(args.input, args.output)curl
# Headers only using GET
curl -s -D - -o /dev/null --url https://www.romanstefko.com/
# HEAD request
curl -I https://www.romanstefko.com/
# Test with local IP address
curl --resolve 'www.romanstefko.com:443:192.168.1.10' -s -D - -o /dev/null --url https://www.romanstefko.com/
# HTTP Proxy
curl -x http://proxy:3128 https://www.romanstefko.com