main/modules/60-sanity.sh

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."
}