diff options
Diffstat (limited to 'docs/how-to/migration-scripts/31-extract-purgatory-expiry.sh')
| -rwxr-xr-x | docs/how-to/migration-scripts/31-extract-purgatory-expiry.sh | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/docs/how-to/migration-scripts/31-extract-purgatory-expiry.sh b/docs/how-to/migration-scripts/31-extract-purgatory-expiry.sh index a20780e..a603a1e 100755 --- a/docs/how-to/migration-scripts/31-extract-purgatory-expiry.sh +++ b/docs/how-to/migration-scripts/31-extract-purgatory-expiry.sh | |||
| @@ -243,6 +243,19 @@ main() { | |||
| 243 | exit 1 | 243 | exit 1 |
| 244 | fi | 244 | fi |
| 245 | 245 | ||
| 246 | # Validate service exists (check if journalctl can find any logs for it) | ||
| 247 | # Note: We don't require the service to be running, just that it has logs | ||
| 248 | if ! journalctl --no-pager -u "$service" -n 1 &>/dev/null; then | ||
| 249 | log_warn "Could not query logs for service: $service" | ||
| 250 | log_warn "This may indicate the service doesn't exist or you lack permissions." | ||
| 251 | log_warn "" | ||
| 252 | log_warn "To list available ngit-grasp services:" | ||
| 253 | log_warn " systemctl list-units 'ngit-grasp*' --all" | ||
| 254 | log_warn " journalctl --list-boots # Check if you have journal access" | ||
| 255 | log_warn "" | ||
| 256 | # Continue anyway - the service might exist but have no logs yet | ||
| 257 | fi | ||
| 258 | |||
| 246 | # Build journalctl command | 259 | # Build journalctl command |
| 247 | local journal_cmd="journalctl -u $service --no-pager -o short-iso" | 260 | local journal_cmd="journalctl -u $service --no-pager -o short-iso" |
| 248 | 261 | ||
| @@ -287,8 +300,20 @@ main() { | |||
| 287 | log_info "Extracting log entries..." | 300 | log_info "Extracting log entries..." |
| 288 | 301 | ||
| 289 | # Get raw log lines containing [PURGATORY_EXPIRED] | 302 | # Get raw log lines containing [PURGATORY_EXPIRED] |
| 290 | local raw_lines | 303 | # Capture stderr separately to detect journalctl errors |
| 291 | raw_lines=$(eval "$journal_cmd" 2>/dev/null | grep '\[PURGATORY_EXPIRED\]' || true) | 304 | local raw_lines journal_stderr journal_exit |
| 305 | local temp_stderr | ||
| 306 | temp_stderr=$(mktemp) | ||
| 307 | |||
| 308 | raw_lines=$(eval "$journal_cmd" 2>"$temp_stderr" | grep '\[PURGATORY_EXPIRED\]' || true) | ||
| 309 | journal_exit=$? | ||
| 310 | journal_stderr=$(cat "$temp_stderr" 2>/dev/null || true) | ||
| 311 | rm -f "$temp_stderr" | ||
| 312 | |||
| 313 | # Report any journalctl errors (but don't fail - empty logs are valid) | ||
| 314 | if [[ -n "$journal_stderr" ]]; then | ||
| 315 | log_warn "journalctl reported: $journal_stderr" | ||
| 316 | fi | ||
| 292 | 317 | ||
| 293 | if [[ -z "$raw_lines" ]]; then | 318 | if [[ -z "$raw_lines" ]]; then |
| 294 | log_warn "No [PURGATORY_EXPIRED] entries found in logs." | 319 | log_warn "No [PURGATORY_EXPIRED] entries found in logs." |