+
+# Linux Useful Utilities
+
+
+<!-- @import "[TOC]" {cmd="toc" depthFrom=1 depthTo=6 orderedList=false} -->
+
+<!-- code_chunk_output -->
+
+- [Linux Useful Utilities](#linux-useful-utilities)
+ - [IO Monitoring](#io-monitoring)
+ - [iotop](#iotop)
+ - [dstat](#dstat)
+ - [Tar Pipe to Server via SSH](#tar-pipe-to-server-via-ssh)
+ - [hdparam](#hdparam)
+ - [lshw](#lshw)
+ - [Automatic ssh Setup](#automatic-ssh-setup)
+ - [Securing SSH Keys: Protection Against Key Compromise](#securing-ssh-keys-protection-against-key-compromise)
+- [Example alias](#example-alias)
+- [Just run "ssh serverprod"!](#just-run-ssh-serverprod)
+- [Access localhost:8080 on server after tunnel setup](#access-localhost8080-on-server-after-tunnel-setup)
+- [Backup script runs nightly via SSH](#backup-script-runs-nightly-via-ssh)
+- [Enable bright colors](#enable-bright-colors)
+- [Delete Files via FZF tab selection.](#delete-files-via-fzf-tab-selection)
+
+<!-- /code_chunk_output -->
+
+
+
+## IO Monitoring
+
+```sudo pidstat -dl 30```
+
+ Accumulate IO read/write for every 30 seconds.
+
+### iotop
+Installation:
+
+ sudo apt install iotop
+
+Run:
+
+ sudo iotop -o -a
+
+### dstat
+
+> pcp-dstat - versatile tool for generating system resource statistics.
+
+Run:
+
+```dstat --disk --fs --top-io -n```
+
+### Tar Pipe to Server via SSH
+
+ > Backup an whole folder to an remote server location.
+
+
+```
+tar --exclude=".cache" --exclude="/.vscode" -cJvf - /home/user1 | ssh user1@some.server "cat > ~/backups/user1_workstation_home.tar.xz"
+```
+
+```
+XZ_OPT=-e3 tar --exclude=".cache" --exclude="/.vscode" -cJvf - VIDEOS/ | buffer -z 500K -p 75 | ssh will@elite "buffer -s 500K -p 75 | cat > ~/backups/nomad_data_VIDEOS.tar.xz"
+```
+
+### hdparam
+>The hdparm command is a key tool for managing and optimizing hard drives in Linux, offering options to retrieve drive info, test read speeds, and adjust power settings.
+
+```
+sudo hdparm -Tt /dev/nvme1n1p2
+
+/dev/nvme1n1p2:
+ Timing cached reads: 18622 MB in 1.98 seconds = 9388.32 MB/sec
+ Timing buffered disk reads: 4374 MB in 3.00 seconds = 1457.75 MB/sec
+
+ ```
+
+ 
+
+### lshw
+>Display all disks and storage controllers in the system.
+
+```
+lshw -class disk -class storage
+```
+
+
+## Automatic ssh Setup
+>Password-less Remote Access steps.
+https://thelinuxcode.com/automate-ssh-login-without-password/
+
+1. Generate New SSH Key on Your Client
+ >Accept the default RSA algorithm and minimum 2048 bit key size, but choose an empty passphrase unless your security protocol demands otherwise:
+ ```ssh-keygen -t rsa -b 2048```
+ ...
+2. Copy Public Key to Remote Server
+ >``` ssh-copy-id -i ~/.ssh/id_rsa.pub remote_username@server_ip ```
+3. Celebrate with Password-less Remote Access!
+ >```ssh remote_username@server_ip```
+
+
+### Securing SSH Keys: Protection Against Key Compromise
+
+While incredibly useful, SSH keys do necessitate some care to avoid potential downsides from theft or misuse:
+
+ * Manage access rights to private keys with chmod 600 ~/.ssh
+ * Leverage SSH agent forwarding over copying keys between servers
+ * Store keys on hardware tokens for multi-factor protection
+ * Disable shells for automated SSH user accounts
+ * Monitor key changes carefully with centralized logging
+
+According to [SECURITY FIRM], at least 20% of corporate breaches involve stolen SSH credentials. But following guidelines like the ones above makes compromise extremely difficult.
+
+Moreover, the same public key cryptography powering SSH keys allows flexibility for specialized key pairs. For example, you can create:
+
+ User-specific keys granting least privilege access
+ Command-restricted keys to limit available actions
+ Temporary keys that automatically expire
+
+So while requiring some extra diligence, SSH keys provide scalable and secure authentication.
+Level Up Your SSH Game with Advanced Tips
+
+Now that you have unlocked the basics of passwordless SSH access, let‘s explore some ways to further improve your remote user experience:
+
+1. Configure aliases and concise connection settings in SSH config
+
+The ~/.ssh/config file allows shortcut aliases and options presets to simplify verbose SSH invocations:
+
+# Example alias
+Host serverprod
+ Hostname server.prod.example.com
+ User jsmith
+
+# Just run "ssh serverprod"!
+
+2. Forward remote ports for tunneling into internal networks
+
+SSH tunneling grants secure traversal of firewalls via forwarded connections:
+
+# Access localhost:8080 on server after tunnel setup
+ssh -L 8080:localhost:8080 remote_server
+
+3. Automate commands and transfers on remote hosts
+
+Combine passwordless SSH with cron jobs for scheduled script execution:
+
+# Backup script runs nightly via SSH
+0 1 * * * ssh remote_server ./backup.sh
+
+4. Control terminal settings like colors or cursor movement
+
+Customize your shell and text interface however you like:
+
+# Enable bright colors
+ssh remote_server -t ‘setterm -bold >&3‘
+
+The options for enhancement are nearly endless once the convenience of single sign-on is activated!
+
+# Delete Files via FZF tab selection.
+
+ls /Downloads/.nomad-*|fzf -m| tr "\n" "\0" |xargs -0 rm