[X2go-dev] cleaning sessions [logs, automatically]
R P Herrold
herrold at owlriver.com
Tue Jul 20 11:58:30 CEST 2010
On Tue, 20 Jul 2010, Mike Gabriel wrote:
>> earlier: contact at gmli.fr asked:
>> this night my server went off. Here is the reason :
>>
>> # du -h --max-depth=1 .
>> 856K ./C-test-50-1279548701_stDstartxfce4_dp24
... snip 20 instances
>> 8,0K ./ssh
>> Could someone tells me how to auto-clean client sessions ? :)
On Tue, 20 Jul 2010, Mike Gabriel wrote:
> Is there a reason to keep the session folders of terminated sessions? It is
> nice to have some logs of terminated sessions but for production this is not
> really feasible...
Note in passing: It is curious that there is a './ssh/" rather
than a /.ssh/ "invisible 'dotfile' directory"
There are diagnostic reasons to save such log files for
perhaps a week --- it would seem that these should be in a per
user subdirectory, such as ~/.logs/ or such, but ...
That to one side, it should be posible to 'age' and expire
these using the 'find' command at startup
We initially see:
find path/to/logfiles -name "C-test*1279583278_st[DR]*" \
-a -exec rm {} \;
... I see the '/seconds since epoch value there which is
useful to reduce ...
find path/to/logfiles -name "C-test*[0-9][0-9]{11}_st[DR]*" \
-a -exec rm {} \;
which says:
starting at the path indicated, and travelling down the
filesystem, look for a file with a name of the pattern:
"C-test*[0-9][0-9]{11}_st[DR]*"
and when found, remove it. That needs a qualified, however,
to save perhaps only the last seven day's matches, so that one
can do diagnostics ...
so let's add a symbolic minimum retention time, which might
be overridden by passing in a valie as an option (here:
arg1), and put this into a script
#!/bin/sh
#
# age out old diagnostic matter, for the x2go project
#
# license: GPLv3+
# Copyright :R P Herrold <info at owlriver dot com>
#
# default number of days back to retain log files for
AGE=7
# and permit a command line number passed in to alter
# this
[ 0${1} -gt 0] && {
export AGE=${1}
}
#
LOGPATH="~"
#
find ${LOGPATH} -name "C-test*[0-9][0-9]{11}_st[DR]*" \
-atime $AGE -a -exec rm {} \;
#
This is not immediately tested as I am away from my office at
the moment, but it should work. Note that in testing the
candidates for removal, oue might substitute:
echo
for the:
rm
in that command to see what would happen in a 'dry run'
Hope this helps ...
-- Russ herrold
More information about the x2go-dev
mailing list