[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: