Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use strict;
- use File::Find;
- use DBI;
- use XML::Twig;
- use Data::Dumper;
- use Date::Manip;
- use Log::Log4perl;
- use Digest::MD5::File qw(dir_md5_hex file_md5_hex url_md5_hex);
- use Time::HiRes qw(gettimeofday );
- use MP3::Tag;
- use MP3::Info;
- #use File::stat;
- #use File::MimeInfo;
- use File::MimeInfo::Magic;
- $Data::Dumper::Indent = 3;
- my $debug = 1;
- # Important variables found in config files...
- use vars qw ( $DB_SERVER $DB_NAME $DB_USER
- $DB_PASSWORD $DB_PORT
- $SCAN_FOLDER
- $HOST_ID $VOLUME_ID
- $LOG_CONFIG $PIDLOCK_FILE %counters
- $PRETEND_MODE $FILES_TO_PROCESS $MAX_SIGTERM
- $FORCE_HASHCHECK
- );
- # include (execute) configuration file
- BEGIN { require "scan.cfg"; }
- # Handle unix signals: hangup, kill, terminate, interrupt
- # question: should these all have the same result?
- my $sigterm_received;
- $SIG{HUP} = \&signalTerminate; # call signalTerminate on sighup
- $SIG{HANGUP} = \&signalTerminate; # call signalTerminate on sighup
- $SIG{TERM} = \&signalTerminate; # call signalTerminate on sigterm
- $SIG{INT} = \&signalTerminate; # call signalTerminate on sigint
- ------------ config file below ---------------
- # This config file is in perl syntax and is intended to be 'executed'
- # by scan.pl to set up its basic environment
- #####################
- #
- # Debug settings
- #
- #####################
- # If this is non-zero, stop after processing this many mp3 files from a disk scan
- $FILES_TO_PROCESS = 0;
- # PRETEND MODE - set this to 1 to prevent records from being inserted into the
- # database and to prevent files from being moved out of the inbound directory
- $PRETEND_MODE = 0;
- # This setting should force a graceless death after the specified number of
- # termination signals have been received -- I haven't tested it yet
- $MAX_SIGTERM = 3;
- # If this is non-zero, the scanner will always generate the md5 hash
- # before assessing whether the file has changed
- $FORCE_HASHCHECK = 0;
- #########################################
- #
- # Paths where files come from and go to
- #
- #########################################
- $SCAN_FOLDER = "/data/files/Software/";
- $PIDLOCK_FILE = "/home/btox/data_tracking_scanner.pid";
- $LOG_FOLDER = "/home/btox/log/";
- $HOST_ID = 2;
- $VOLUME_ID = 3;
- ##########################
- #
- # Database configuration
- #
- ##########################
- #$DB_SERVER="massiveplural.org";
- #$DB_NAME="data_tracking";
- #$DB_USER="data_tracking";
- #$DB_PASSWORD="Ml6nGBpp";
- #$DB_PORT="3309";
- $DB_SERVER="localhost";
- $DB_NAME="data_tracking";
- $DB_USER="data_tracking";
- $DB_PASSWORD="data_tracking";
- $DB_PORT="3306";
- #########################
- #
- # Logging configuration
- #
- #########################
- my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdet) = localtime();
- $year += 1900; # year from localtime is year-1900
- $mon++; # $mon from localtime is in range 0-11
- $mday = "0" . $mday if ($mday < 10); # zero pad
- my $logfile = "scan_" . $year . $mon . $mday . ".log";
- my $debugfile = "scandebug_" . $year . $mon . $mday . ".log";
- # POSSIBLE LOG LEVELS: ALL, INFO, WARN, ERROR, FATAL
- #$LOG_CONFIG = qq(
- # log4perl.rootLogger=ALL, LOGFILE
- #
- # log4perl.appender.LOGFILE=Log::Log4perl::Appender::File
- # log4perl.appender.LOGFILE.filename=$logfile
- # log4perl.appender.LOGFILE.mode=append
- #
- # log4perl.appender.LOGFILE.layout=PatternLayout
- # log4perl.appender.LOGFILE.layout.ConversionPattern=[%r] %F %L %c - %m%n
- #);
- $LOG_CONFIG = qq(
- # root logger
- log4perl.logger = DEBUG, logfile, console, debugfile
- # sql logger
- log4perl.logger.db_query = DEBUG, logfile, console, debugfile
- #log4perl.logger.screenlogger = DEBUG, console
- log4perl.logger.filelist = TRACE, filelog
- log4perl.appender.console =Log::Log4perl::Appender::ScreenColoredLevels
- log4perl.appender.console.stderr = 0
- log4perl.appender.console.layout =PatternLayout
- log4perl.appender.console.layout.ConversionPattern =%p %L: %m%n
- log4perl.appender.console.Threshold = INFO
- log4perl.appender.logfile=Log::Log4perl::Appender::File
- log4perl.appender.logfile.filename=filescan.log
- log4perl.appender.logfile.mode=append
- log4perl.appender.logfile.Threshold = INFO
- log4perl.appender.logfile.layout=PatternLayout
- #log4perl.appender.logfile.layout.ConversionPattern=%m%n
- log4perl.appender.logfile.layout.ConversionPattern=[%rms] %p %L %c - %m%n
- log4perl.appender.debugfile=Log::Log4perl::Appender::File
- log4perl.appender.debugfile.filename=scandebug.log
- log4perl.appender.debugfile.mode = append
- log4perl.appender.debugfile.layout=PatternLayout
- log4perl.appender.debugfile.layout.ConversionPattern=[%rms] %p %L %c - %m%n
- log4perl.appender.filelog=Log::Log4perl::Appender::File
- log4perl.appender.filelog.filename=scanfilelist.log
- log4perl.appender.filelog.mode = write
- log4perl.appender.filelog.layout=PatternLayout
- log4perl.appender.filelog.layout.ConversionPattern=%m%n
- );
- #####################
- #
- # Counters
- #
- #####################
- %counters = ('files_scanned' => 0
- );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement