How to Perform tar Incremental Backup on Linux
Take GNU tar listed-incremental backups with a snapshot file, create level 0 and level 1 archives, inspect Y and N file status, and restore by applying the full backup then each incremental in order.
SSH Multiplexing on Linux: Share One Connection
Reuse one authenticated SSH connection for later ssh, scp, and sftp sessions with ControlMaster, ControlPath, and ControlPersist on the OpenSSH client.
How to Copy a Directory Over SSH on Linux
Copy a directory and its contents between Linux hosts with scp -r and rsync -av over SSH, verify the remote layout, and avoid common path mistakes with trailing slashes.
Restrict SFTP Users to a Directory with OpenSSH Chroot
Restrict SFTP users to a chroot directory with OpenSSH ChrootDirectory, ForceCommand internal-sftp, Match blocks in sshd_config, writable upload folders, and SSH public-key authentication.
How to Set Up a Proxy for YUM and DNF Repositories
Configure proxy settings in dnf.conf and yum.repos.d for YUM, DNF 4, and DNF 5 on RHEL-family systems, including authenticated proxies, per-repo overrides, and proxy=_none_.
How to Set SFTP umask in Linux
Set SFTP upload permissions with OpenSSH internal-sftp -u in sshd_config, apply umask per user or group with Match blocks, and understand why umask removes bits but cannot add them.
Secure HTTPS File Transfer with curl and Apache on RHEL
Set up Apache httpd with TLS, WebDAV, and HTTP basic auth on RHEL-family systems, trust the server certificate on the client with curl --cacert, and upload or download files over verified HTTPS.
How to Set the FFmpeg Output Directory on Linux
Set the FFmpeg output directory by including the folder in the output file path after -i, use the current working directory for bare filenames, and set input_dir and output_dir in bash scripts.
SCP vs rsync in Linux: When to Use Each for Remote File Transfer
Compare scp and rsync for Linux file transfer: what each tool does, when to use one-off copy vs repeated sync, SSH security, metadata, resume, and common path mistakes.
pkill -P: Kill Child Processes by Parent PID in Linux
Use pkill -P PARENT_PID . to send SIGTERM to every direct child of a parent process, list them with ps --ppid, and clean up script workers with pkill -P $$ . on EXIT.
Run a Script Before the Linux Login Prompt with systemd
Run a shell script before the console login prompt with systemd using Wants and Before getty-pre.target, then verify with systemctl show and the script log file.
Run a Script Before Shutdown or Reboot with systemd
Run a shell script before shutdown or reboot with systemd using Before=shutdown.target and WantedBy=shutdown.target for cleanup on both poweroff and reboot.
Run a Script at Linux Boot with systemd (Without cron)
Run a shell script at Linux boot with a systemd service unit after network-online.target, enable it with systemctl, verify with journalctl, and avoid common ExecStart path mistakes.
Run a Script N Minutes After Boot with systemd (Without cron)
Run a shell script five minutes after boot with a systemd timer using OnBootSec, keep the Timer section in a .timer file, enable only the timer, and verify with systemctl list-timers.
Run a Script at Shutdown Only (Not on Reboot) with systemd
Run a shell script only at poweroff or halt with systemd by enabling the unit on poweroff.target and halt.target, not on reboot.target, and verify with a poweroff test.
pam_faillock: Lock User Accounts After Failed Logins on RHEL
Enable pam_faillock on RHEL-family Linux with authselect and faillock.conf, verify SSH lockout after failed passwords, and reset tallies with the faillock command.
Git Unstage Files: git restore --staged, git reset HEAD, and git rm --cached
Git unstage command reference for git restore --staged, git reset HEAD, git rm --cached, folders, and full index clears — with status checks and edge cases before commit.
Git Commit --Amend: Fix the Last Commit (Files, Author, Date)
Use git commit --amend to add forgotten files, fix the author or date on the last commit, amend without changing the message, recover from a bad amend with reflog, and safely force-push a rewritten commit.
How to Change a Git Commit Message (Last, Older, or Already Pushed)
Change the last, older, multiple, or already-pushed Git commit messages using amend and interactive rebase, with safe force-push and recovery examples.
Git Undo Add: Unstage Files After git add
Undo git add without losing edits: read git status -sb, unstage one file with git restore --staged, undo git add . with git restore --staged . or git reset, and handle staged deletions before commit. For full unstage …
Git Merge vs Rebase: When to Use Each
Compare git merge and git rebase on the same branch split: merge commits preserve branch history, rebase replays commits for a linear log, fast-forward merges skip the merge commit, and pull --rebase vs merge pull change …
Git .gitignore Examples: Patterns, Folders, and Fixes
Use .gitignore to hide build output, logs, and env files from git status: wildcard patterns, folder rules, negation with !, git check-ignore debugging, git rm --cached for already-tracked files, and local or global …
Git Init Explained: What It Does, Examples, and When to Use It
Learn what git init does with simple examples. Understand how to initialize a Git repository, what happens after git init, git init vs git clone differences, and how to use git init in real workflows.
Git Detached HEAD: Fix, Save Work, and Recover Commits
Fix Git detached HEAD: recognize HEAD (no branch), inspect an old commit with git switch --detach, save work with git switch -c, return with git switch main, and recover orphaned commits using git reflog.
Git List Branches: Local, Remote, and All Branches
List Git branches by goal: git branch for local names, git branch -r for remote-tracking branches after fetch, git branch -a for both, and git branch -vv for upstream tracking — with filter, sort, and prune examples.
Git Revert to Previous Commit: Reset, Revert, or Checkout
Go back to a previous Git commit safely: git revert for pushed history, git reset for local-only branch moves, git switch --detach to inspect an old snapshot, and git restore --source for one file — with a decision table …
Git Reset: Soft, Mixed, and Hard Examples
Use git reset --soft, --mixed, and --hard to move HEAD, unstage with git reset HEAD file, discard tracked edits with git reset --hard HEAD, or match origin after git fetch — with the smallest mode for each goal.
Git Discard Changes: Restore, Reset, and Clean Local Edits
Discard uncommitted Git changes after reading git status: git restore for unstaged edits, git restore --staged --worktree for one MM file, git reset --hard HEAD for all tracked files, and git clean for untracked paths.
Git Fix: fatal: couldn't find remote ref main
Fix "fatal: couldn't find remote ref main" by listing remote branches with git ls-remote --branches, using the branch name the server publishes, or pushing the branch when it exists only locally.
Git Error: Cannot Delete Branch Checked Out or Used by Worktree
Fix "cannot delete branch checked out at" and "cannot delete branch used by worktree" by checking git branch and git worktree list, switching away or freeing the linked worktree, then deleting with git branch -d.

