40 lines
734 B
Bash
Executable File
40 lines
734 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
usage() {
|
|
echo "Usage: $0 [--keep] [dest_dir]" >&2
|
|
echo " --keep keep original .log files after backup" >&2
|
|
echo " dest_dir optional destination directory (default: logs)" >&2
|
|
}
|
|
|
|
move_logs=true
|
|
if [[ "${1:-}" == "--help" || "${1:-}" == "-h" ]]; then
|
|
usage
|
|
exit 0
|
|
fi
|
|
if [[ "${1:-}" == "--keep" ]]; then
|
|
move_logs=false
|
|
shift
|
|
fi
|
|
|
|
DEST_DIR="${1:-logs}"
|
|
TS="$(date +"%Y%m%d_%H%M%S")"
|
|
mkdir -p "$DEST_DIR"
|
|
|
|
found=false
|
|
for f in *.log; do
|
|
if [[ -f "$f" ]]; then
|
|
found=true
|
|
base="${f%.log}"
|
|
target="$DEST_DIR/${base}_${TS}.log"
|
|
cp "$f" "$target"
|
|
if $move_logs; then
|
|
rm "$f"
|
|
fi
|
|
fi
|
|
done
|
|
|
|
if ! $found; then
|
|
echo "No .log files found in repo root."
|
|
fi
|