File:  [LON-CAPA] / loncom / misc / archive_old_files.pl
Revision 1.4: download - view: text, annotated - select for diffs
Mon Jul 4 09:25:10 2011 UTC (12 years, 10 months ago) by foxr
Branches: MAIN
CVS tags: version_2_12_X, version_2_11_X, version_2_11_4_uiuc, version_2_11_4_msu, version_2_11_4, version_2_11_3_uiuc, version_2_11_3_msu, version_2_11_3, version_2_11_2_uiuc, version_2_11_2_msu, version_2_11_2_educog, version_2_11_2, version_2_11_1, version_2_11_0_RC3, version_2_11_0_RC2, version_2_11_0_RC1, version_2_11_0, language_hyphenation_merge, language_hyphenation, HEAD, BZ4492-merge, BZ4492-feature_horizontal_radioresponse
Centralize knowledge of where the tmp directory is within LONCAPA.pm

    1: #!/usr/bin/perl
    2: # The LearningOnline Network
    3: # zip all .db and .hist files that have not been accessed in 120 days
    4: #
    5: # $Id: archive_old_files.pl,v 1.4 2011/07/04 09:25:10 foxr Exp $
    6: #
    7: # Copyright Michigan State University Board of Trustees
    8: #
    9: # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
   10: #
   11: # LON-CAPA is free software; you can redistribute it and/or modify
   12: # it under the terms of the GNU General Public License as published by
   13: # the Free Software Foundation; either version 2 of the License, or
   14: # (at your option) any later version.
   15: #
   16: # LON-CAPA is distributed in the hope that it will be useful,
   17: # but WITHOUT ANY WARRANTY; without even the implied warranty of
   18: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   19: # GNU General Public License for more details.
   20: #
   21: # You should have received a copy of the GNU General Public License
   22: # along with LON-CAPA; if not, write to the Free Software
   23: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   24: #
   25: # /home/httpd/html/adm/gpl.txt
   26: #
   27: # http://www.lon-capa.org/
   28: #
   29: #################################################
   30: use Fcntl qw(:flock);
   31: 
   32: #
   33: #  Since this is a standalone script that may not have access to the
   34: #  LONCAPA module, it is going to be exempt form the 'tmp' dir centralization
   35: #  effort.
   36: 
   37: #  This variable may require editing if you are not using standard loncapa 
   38: #  directory configurations:
   39: 
   40: my $tempdir = '/home/httpd/perl/tmp'
   41: 
   42: my $oldfile = $tempdir."/old_files.lst";
   43: system ("find /home/httpd/lonUsers/ -name *.db -atime +120 > $oldfile");
   44: 
   45: open(IN,$oldfile);
   46: while (my $dbfile=<IN>) {
   47:     chomp($dbfile);
   48:     my $sym;
   49:     open($sym,">>$dbfile.lock");
   50:     unless (flock($sym,(LOCK_EX|LOCK_NB))) {
   51:        close($sym);
   52:        next;
   53:     }
   54:     system("gzip $dbfile");
   55:     my $histfile=$dbfile;
   56:     $histfile=~s/\.db$/\.hist/;
   57:     if (-e $histfile) {
   58: 	system("gzip $histfile");
   59:     }
   60:     flock($sym,LOCK_UN);
   61:     close($sym);
   62: }
   63: close(IN);
   64: unlink($oldfile);

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>