forked from colin/disk-space-report
send to hastebin.
This commit is contained in:
parent
1d41668fc8
commit
cb0977160b
41
pull-logs.sh
41
pull-logs.sh
|
@ -22,24 +22,27 @@ fi
|
|||
|
||||
echo "Collecting logs from $START to $END"
|
||||
|
||||
# Temporary file to store logs
|
||||
TEMP_LOG_FILE=$(mktemp)
|
||||
|
||||
# Function to check journalctl logs
|
||||
get_journalctl_logs() {
|
||||
if command -v journalctl &> /dev/null; then
|
||||
echo "----- Journalctl Logs -----"
|
||||
journalctl --since="$START" --until="$END"
|
||||
echo "----- Journalctl Logs -----" >> "$TEMP_LOG_FILE"
|
||||
journalctl --since="$START" --until="$END" >> "$TEMP_LOG_FILE"
|
||||
else
|
||||
echo "journalctl not found, skipping..."
|
||||
echo "journalctl not found, skipping..." >> "$TEMP_LOG_FILE"
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to check logs in /var/log
|
||||
get_var_log_logs() {
|
||||
echo "----- /var/log Logs -----"
|
||||
echo "----- /var/log Logs -----" >> "$TEMP_LOG_FILE"
|
||||
log_files=(/var/log/syslog /var/log/auth.log /var/log/kern.log /var/log/dmesg)
|
||||
|
||||
for log in "${log_files[@]}"; do
|
||||
if [[ -f $log ]]; then
|
||||
echo "Logs from $log"
|
||||
echo "Logs from $log" >> "$TEMP_LOG_FILE"
|
||||
awk -v start="$START" -v end="$END" '{
|
||||
logtime = $1 " " $2 " " $3
|
||||
logtime_epoch = mktime(gensub(/-|:/, " ", "g", logtime))
|
||||
|
@ -48,22 +51,22 @@ get_var_log_logs() {
|
|||
if (logtime_epoch >= start_epoch && logtime_epoch <= end_epoch) {
|
||||
print $0
|
||||
}
|
||||
}' $log
|
||||
}' $log >> "$TEMP_LOG_FILE"
|
||||
else
|
||||
echo "$log not found, skipping..."
|
||||
echo "$log not found, skipping..." >> "$TEMP_LOG_FILE"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Function to check logs of specific services like nginx or apache2
|
||||
get_service_logs() {
|
||||
echo "----- Service Logs (nginx, apache, mysql, etc.) -----"
|
||||
echo "----- Service Logs (nginx, apache, mysql, etc.) -----" >> "$TEMP_LOG_FILE"
|
||||
|
||||
service_logs=(/var/log/nginx/access.log /var/log/nginx/error.log /var/log/apache2/access.log /var/log/mysql/error.log)
|
||||
|
||||
for log in "${service_logs[@]}"; do
|
||||
if [[ -f $log ]]; then
|
||||
echo "Logs from $log"
|
||||
echo "Logs from $log" >> "$TEMP_LOG_FILE"
|
||||
awk -v start="$START" -v end="$END" '{
|
||||
logtime = $1 " " $2
|
||||
logtime_epoch = mktime(gensub(/-|:/, " ", "g", logtime))
|
||||
|
@ -72,9 +75,9 @@ get_service_logs() {
|
|||
if (logtime_epoch >= start_epoch && logtime_epoch <= end_epoch) {
|
||||
print $0
|
||||
}
|
||||
}' $log
|
||||
}' $log >> "$TEMP_LOG_FILE"
|
||||
else
|
||||
echo "$log not found, skipping..."
|
||||
echo "$log not found, skipping..." >> "$TEMP_LOG_FILE"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
@ -83,3 +86,19 @@ get_service_logs() {
|
|||
get_journalctl_logs
|
||||
get_var_log_logs
|
||||
get_service_logs
|
||||
|
||||
# Upload logs to hastebin server
|
||||
if command -v curl &> /dev/null; then
|
||||
RESPONSE=$(curl -s -X POST -H "Content-Type: text/plain" --data-binary "@${TEMP_LOG_FILE}" https://haste.nixc.us/documents)
|
||||
if [[ $RESPONSE == *"key"* ]]; then
|
||||
KEY=$(echo "$RESPONSE" | jq -r .key)
|
||||
echo "Logs uploaded: https://haste.nixc.us/$KEY"
|
||||
else
|
||||
echo "Failed to upload logs to hastebin server."
|
||||
fi
|
||||
else
|
||||
echo "curl not found, unable to upload logs."
|
||||
fi
|
||||
|
||||
# Clean up temporary file
|
||||
rm "$TEMP_LOG_FILE"
|
||||
|
|
Loading…
Reference in New Issue