/debian-server-tools

Tools and living docs for Debian-based servers

Primary LanguageShellMIT LicenseMIT

Debian server tools

Various scripts and tools mainly for Debian servers.

World's fastest cloud servers

Install Debian on UpCloud

How to choose VPS provider?

See https://github.com/szepeviktor/wordpress-speedtest/blob/master/README.md#how-to-choose-vps-provider

Model of how systems work

Richard Cook at Velocity NY 2013

Debian install with UTC as timezone

Select Expert install.

Directories

  • /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

Script development

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

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

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://rawgit.com/ https://cdn.rawgit.com/USER/REPO/TAG/FILE

ROA validation, RPKI status

whois -h whois.bgpmon.net 84.2.228.0

UNICODE owl domain name

﴾͡๏̯͡๏﴿.tk

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

Looking for maintenance for your application or website?

Contact me: viktor@szepe.net