Debian server tools
You find all my knowledge on GitHub in form of Bash and PHP scripts and Markdown documents.
Updated daily as I work.
⭐
Featured documents - Too much of a website
- Web application development
- Setting up your infrastructure and your application
- All things WordPress
- WordPress Security
- Running Laravel
- Running Drupal
- Monitoring on paranoid level
- Continuous Integration and Continuous Delivery
- Debian setup on UpCloud server including Resize root filesystem during boot
- Live list of Hostile networks
- Bulk mail sending
🇭🇺
Magyar nyelvű kiemelt dokumentumok - Csapatának tagja szeretnék lenni
- Ismerkedés Új ügyfelekkel
- Teljesítménycentrikus webhely tervezése
- Honlap jogi dolgai + GDPR
- Kézi Tesztelési Kézikönyv
- Képek életciklusa
- Magyar email szolgáltatók
(direct) / (none)
Google Analytics-ben
Support my work
Please consider supporting my work.
Thank you!
Superior cloud hosting
Install Debian on UpCloud
How UpCloud was chosen? Read https://github.com/szepeviktor/wordpress-speedtest/blob/master/README.md#how-to-choose-vps-provider
Ergonomics
Model of how systems work
Richard Cook at Velocity NY 2013
Directories
- /debian-setup - Debian installation scripts including debian-setup.sh
- /backup - Tools related to archiving
- /image - Tools related to image optimization
- /input - Tools related to the terminal
- /mail - Tools related to email account management
- /monitoring - Tools related to server monitoring, alert and statistics emails
- /mysql - Tools related to database management
- /package - Tools related to Debian packages and general packaging
- /security - Security and SSL certificate related tools
- /tools - Various small tools
- /virtualization - Docker containers
- /webserver - Tools related to building webservers
Debian install with UTC as timezone
Select Expert install.
Script development
- Check shell scripts: http://www.shellcheck.net/
- Code styling: https://github.com/git/git/blob/master/Documentation/CodingGuidelines
- Bashism: https://wiki.ubuntu.com/DashAsBinSh
checkbashisms -f bash-script.sh
Install your own SSH key
S="${HOME}/.ssh";mkdir --mode 0700 "$S";editor "${S}/authorized_keys"
ssh-keygen -v -l -f "${S}/authorized_keys"
authorized_keys
parameters:
# restrict == no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty,no-user-rc
restrict,command="echo 'Please login as the user \"debian\" rather than the user \"root\".';echo;sleep 10" ssh-rsa AAAA...
Install a user's SSH key
u bash -c 'S="${HOME}/.ssh";mkdir --mode 0700 "$S";editor "${S}/authorized_keys"'
U="$(stat -c %U .)";S="$(getent passwd $U|cut -d: -f6)/.ssh";mkdir -m 0700 "$S";editor "${S}/authorized_keys";chown -R $U:$U "$S"
Retrieve public key from private key
ssh-keygen -y -f ~/.ssh/id_ecdsa
Display SSH access details
printf 'host: %s\nport: %s\nuser: %s\n' "$(hostname)" "$(/usr/sbin/sshd -T -C user=root -C host=localhost -C addr=localhost|sed -n -e 's/^port \([0-9]\+\)$/\1/p')" "$(ls -tr /home/|tail -n1)"
List sshd host keys
ls /etc/ssh/ssh_host_*_key.pub | xargs -n 1 ssh-keygen -l -f
Record terminal session
script --timing=NAME.time --append NAME.script
scriptreplay --maxdelay 1 NAME.time NAME.script
Fast and safe transit of scripts (or any data) via copy&paste
Use magic-wormhole
Pack
cat $SCRIPT|xz -9|base64 -w $((COLUMNS-1))
# alias: cat $SCRIPT | transit
Unpack
cat $PASTED_FILE|base64 -d|xz -d > $SCRIPT
# alias: cat $PASTED_FILE | transit-receive
Moving away git-dir
git init --separate-git-dir=/home/user/gitdir
Produces:
/home/user/work-dir/.git: gitdir: /home/user/git
/home/user/gitdir/config: worktree = /home/user/work-dir
Rescan the SCSI Bus to Add SCSI Devices
echo "- - -" > /sys/class/scsi_host/host0/scan
Flush Google public DNS cache
https://google-public-dns.appspot.com/cache
Free CDN for GitHub
https://staticaly.com/ https://cdn.staticaly.com/gh/USER/REPO/TAG/FILE
Whois servers
whois -h whois.iana.org $TLD
https://www.iana.org/domains/root/dbdig _nicname._tcp.$TLD SRV
https://tools.ietf.org/html/draft-sanz-whois-srv-01- https://github.com/rfc1036/whois/blob/next/tld_serv_list
AS information
whois -h whois.radb.net -- "-i origin AS202053"
ROA validation, RPKI status
whois -h whois.bgpmon.net 94.237.81.0
Crontab format
.---------------- minute (0 - 59)
| .-------------- hour (0 - 23)
| | .----------- day of month (1 - 31)
| | | .--------- month (1 - 12)
| | | | .------- day of week (0 - 6)
| | | | |
* * * * * USER COMMAND
crontab -e -u USER
.---------------- minute (0 - 59)
| .-------------- hour (0 - 23)
| | .----------- day of month (1 - 31)
| | | .--------- month (1 - 12)
| | | | .------- day of week (0 - 6)
| | | | |
* * * * * COMMAND
Cron scheduling with timezone
# Well before the actual execution time!
00 06 * * * echo "/bin/ls -l" | at "$(date --date='TZ="Europe/Budapest" 10:30' "+\%H:\%M")" 2>/dev/null
Looking for a dedicated team member running your application or website?
Contact me: [email protected]