38 lines
1.8 KiB
Bash
Executable File
38 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# 60-sanity — final read-only report + recommended manual actions.
|
|
|
|
step_name="sanity"
|
|
step_desc="report system state + suggest manual follow-ups"
|
|
step_run="run_sanity"
|
|
|
|
run_sanity() {
|
|
log "sanity report"
|
|
|
|
echo " distribution : $DISTRO"
|
|
echo " arch : $ARCH"
|
|
echo " user : $USER (shell: $(getent passwd "$USER" | cut -d: -f7))"
|
|
echo " uptime : $(uptime -p 2>/dev/null || uptime)"
|
|
echo " memory : $(free -h | awk '/^Mem/ {print $2}') total"
|
|
echo " swap : $(swapon --show 2>/dev/null | awk 'NR>1{print $3; found=1} END{if(!found) print "none"}')"
|
|
echo " timezone : $(timedatectl show -p Timezone --value 2>/dev/null || cat /etc/timezone 2>/dev/null || echo '?')"
|
|
echo " hostname : $(uname -n 2>/dev/null || hostnamectl --static 2>/dev/null || cat /etc/hostname 2>/dev/null || echo '?')"
|
|
echo " locale : $(locale 2>/dev/null | awk -F= '/^LANG/ {print $2}')"
|
|
echo " ufw : $(sudo_ ufw status 2>/dev/null | head -1 || echo 'not installed')"
|
|
echo " fail2ban : $(sudo_ fail2ban-client status 2>/dev/null | head -2 || echo 'not running')"
|
|
echo " docker : $(docker --version 2>/dev/null || echo 'not installed')"
|
|
|
|
echo
|
|
log "recommended manual follow-ups:"
|
|
cat <<'EOF'
|
|
- Test a fresh SSH login (new session) before closing the current one,
|
|
especially after ssh hardening.
|
|
- If you use keys: confirm your public key is in ~/.ssh/authorized_keys
|
|
for the target user.
|
|
- Fill ~/.config/zsh/aliases-extras.zsh with your personal aliases.
|
|
- Add starship config if you want a custom prompt: starship preset list
|
|
(defaults ship with the bootstrap).
|
|
- Consider 'newgrp docker' or re-login to activate the docker group.
|
|
- Issue TLS certs for angie hosts with: angie-issue <domain> you@email.com
|
|
EOF
|
|
ok "bootstrap sanity report done."
|
|
} |