blob: aa6b731d2f24f436a97d1cc9939de79f5c6fa485 [file] [log] [blame]
#!/bin/sh
# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# This script should be called daily to clean up log files.
CLEANUP_PAUSED_FILE="/var/lib/cleanup_logs_paused"
NUM_DAYS_TO_PRESERVE=7
remove_old_dated_files() {
find "$1" -name "$2" -mtime +${NUM_DAYS_TO_PRESERVE} -exec rm '{}' ';'
}
rotate_file() {
local file="$1"
if [ ! -f "${file}" ]; then
# Avoid creating an empty file if it does not exist to begin with
return
fi
local basename="${file%%.*}"
local extension="${file#*.}"
if [ "${basename}" = "${extension}" ]; then
extension=""
else
extension=".${extension}"
fi
echo Rotating "${file}"
for i in $(seq ${NUM_DAYS_TO_PRESERVE} -1 2); do
mv -f "${basename}.$((i - 1))${extension}" "${basename}.$i${extension}"
done
mv -f "${basename}${extension}" "${basename}.1${extension}"
touch "${basename}${extension}"
}
rotate_logs() {
echo Rotating rsyslogd logs
for x in messages secure net.log faillog session_manager; do
rotate_file "/var/log/${x}"
done
chown syslog /var/log/messages /var/log/secure /var/log/net.log
sudo pkill -HUP rsyslogd
}
if [ -r "${CLEANUP_PAUSED_FILE}" ]; then
echo "Exiting early because ${CLEANUP_PAUSED_FILE} exists."
exit 1
fi
# Remove old window manager logs (not logged in)
remove_old_dated_files /var/log/window_manager "chromeos-wm.*-*"
# Remove old window manager logs (logged in)
remove_old_dated_files /home/chronos/user/log "chromeos-wm.*-*"
# Remove old chrome logs (not logged in)
remove_old_dated_files /var/log/chrome "chrome_*-*"
# Remove old chrome logs (logged in)
remove_old_dated_files /home/chronos/user/log "chrome_*-*"
# Remove old screen locker logs
remove_old_dated_files /home/chronos/user/log "screen-locker.*-*"
# Remove old miscellaneous UI logs
remove_old_dated_files /var/log/ui "ui.*-*"
# Remove old update engine logs
remove_old_dated_files /var/log/update_engine "update_engine.*-*"
# Remove old power manager logs
remove_old_dated_files /var/log/power_manager "power*"
# Rotate other logs
rotate_logs
# Report disk usage statistics
METRICS_ARGS="0 1073741824 50"
metrics_client Platform.DiskUsageVar \
$(du -sxk /var/ | awk '{print $1}') $METRICS_ARGS
metrics_client Platform.DiskUsageChronos \
$(du -sxk /home/chronos | awk '{print $1}') $METRICS_ARGS