Re: The .xsession-errors problem
On Mon 26 Oct 2020 at 18:35:45 (+0200), Teemu Likonen wrote:
> It seems that ~/.xsession-errors file can still grow to infinity in
> size. Sometimes it grows really fast. This is nothing new: we have all
> seen it and talked about it. What do you do to maintain this file?
>
> - Do you just delete it when you happen to notice it's too big?
>
> - Do you configure some rotating system, perhaps with logrotate(8)?
> (Why doesn't Debian have this automatically?)
>
> - Do you add it to your backup system's ignore list so that a
> potentially big file doesn't fill your backups?
>
> - What do Debian documentation and faq lists teach about maintaining
> this potentially huge file?
>
> - Why is it normal that in Debian (and GNU/Linux) you need to manually
> delete a hidden file to keep it from filling your hard disks?
>
> Note that I'm not necessarily looking for help but different views are
> welcome. I'm mostly interested in the phenomenon that there still is
> this well-known indefinitely growing file and seemingly no automatic
> rotation.
>
> From my backups I found an ~/.xsession-errors file of size 111
> megabytes. Probably I deleted the file at that point and it started grow
> again.
I have a collection of dotfiles that I cope with in different ways.
I've always started X from a bash function, and that used to
truncate .xsession-errors with >| unless there was an argument,
when it would cat a zzzyyyxxx $HOSTNAME $(date +%Y-%m-%d-%H%M%S)
marker with >>.
Nowadays, however, some of my machines are capable of running more
than one instance of X, and I sometimes look back at an earlier log,
so I've put the following into .xsession:
Displaynumber="$(sed -e 's/://g;' <<<"$DISPLAY")"
[ … there's a short sleep in here for an unrelated purpose … ]
for j in $HOME/.xsession-errors-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]-[0-9]; do
fuser -v "$j"
[ $? -ne 0 ] && gzip "$j" && mv -i "$j.gz" "$HOME/.monitors/xsession/"
done
Xsessionlogname="$HOME/.xsession-errors-$(date +%s)-$Displaynumber"
Xsessionloglink="$HOME/.xsession-log-$Displaynumber"
mv -i "$HOME/.xsession-errors" "$Xsessionlogname"
rm -f "$Xsessionloglink"
ln -s "$Xsessionlogname" "$Xsessionloglink"
In the six months since I acquired this AiO as my main machine,
$ ls -1 .monitors/xsession/.xsession-errors-* | wc -l
205
$ zcat .monitors/xsession/.xsession-errors-* | wc -c
3734959
$
Because of past troubles, I also log CPU temperature and battery
charge where available, and ping the router. The first two rotate
themselves at midnight as the filenames include the date; the
ping output just overwrites its output file. Finally, I log the
fvwm output, but only with one level of backup~.
I don't let the system have anything to do with my own logs etc
partly because the real /home doesn't get mounted until I get
around to unlocking it.
(Script improvements always appreciated.)
Cheers,
David.
Reply to: