/scripts/core/cleaner/cleaner.pl
Perl | 1386 lines | 846 code | 283 blank | 257 comment | 62 complexity | 41fd32b6f4f2459f431cc0dde8690f7d MD5 | raw file
Large files files are truncated, but you can click here to view the full file
- #!/usr/bin/perl -I/opt/CNNi/videoscripts/libraries/perl
- # Ivan Leon
- # Date: 29 APR 2011
- # Script: cleaner.pl
- # $Id:$
- # Libraries
- use strict;
- use DMT::Video_Logs;
- use DMT::directories_parser;
- use Net::FTP;
- use Date::Manip;
- use Sys::Hostname;
- # Start Logging
- log_setglobal_logfile('cleaner/cleaner');
- log_init();
- # Directories
- my $scripts_root_dir = &get_directory_path('scriptsroot');
- my $scripts_logs_dir = &get_directory_path('scriptlogs');
- my $scripts_core_dir = &get_directory_path('corescripts');
- my $video_news_finished_dir = &get_directory_path('videofinishednews');
- my $video_news_incoming_dir = &get_directory_path('videoincomingnews');
- my $video_news_preprocessor_dir = &get_directory_path('videopreprocessornews');
- my $video_news_production_dir = &get_directory_path('videoproductionnews');
- my $video_news_temp_dir = &get_directory_path('videotempnews');
- my $video_news_logs_backup_dir = $video_news_production_dir . '/videoscripts/logs';
- my $video_sports_finished_dir = &get_directory_path('videofinishedsports');
- my $video_sports_incoming_dir = &get_directory_path('videoincomingsports');
- my $video_sports_preprocessor_dir = &get_directory_path('videopreprocessorsports');
- my $video_sports_production_dir = &get_directory_path('videoproductionsports');
- my $video_sports_temp_dir = &get_directory_path('videotempsports');
- my $video_sports_partners_dir = &get_directory_path('videopartnerssports');
- my $video_sports_logs_backup_dir = $video_sports_production_dir . '/videoscripts/logs';
- # Globals
- my $current_time = localtime;
- my $current_year = &UnixDate($current_time, "%Y");
- my $current_month = &UnixDate($current_time, "%m");
- my $current_day = &UnixDate($current_time, "%d");
- my $current_hour = &UnixDate($current_time, "%H");
- my $current_minute = &UnixDate($current_time, "%M");
- my $current_time_epoch = Date_SecsSince1970GMT($current_month, $current_day, $current_year, $current_hour, $current_minute, 00);
- log_data("Current time: " . $current_time . " (" . $current_time_epoch . ")");
- log_data("Current Date (YYYY/MM/DD - Hour:Minute): " . $current_year . "/" . $current_month . "/" . $current_day . " - " . $current_hour . ":" . $current_minute);
- # Clean video repository directories
- &clean_video_repository_directories($video_news_finished_dir);
- &clean_video_repository_directories($video_sports_finished_dir);
- # Clean video proxy directories
- &clean_video_proxy_directories($video_news_finished_dir);
- &clean_video_proxy_directories($video_sports_finished_dir);
- # Clean preprocessor directories
- &clean_preprocessor_directories();
- # Clean temp directories
- &clean_temp_directories($video_news_temp_dir);
- &clean_temp_directories($video_sports_temp_dir);
- # Clean quickclips directory
- &clean_quickclips_directory();
- # Clean TEG Offpkgr directory
- &clean_teg_offpkgr_directory();
- # Clean logs directories
- &clean_logs_directories();
- # Clean done directories
- &clean_done_directories();
- # Clean failed counter directory
- &clean_failed_counter_directory();
- # Clean news jobs notifications monitor directory
- &clean_news_jobs_notifications_monitor_directory();
- # Clean sports jobs notifications monitor directory
- &clean_sports_jobs_notifications_monitor_directory();
- # Clean veas directory
- &clean_veas_directory($video_news_incoming_dir);
- &clean_veas_directory($video_sports_incoming_dir);
- # Clean agility profiles backup directory
- &clean_agility_profiles_backup_san_directory($video_news_production_dir);
- &clean_agility_profiles_backup_san_directory($video_sports_production_dir);
- &clean_agility_profiles_backup_local_directory();
- # Clean sports partners directories
- &clean_sports_partners_directories();
- # Clean NBA teams incoming directories
- &clean_nba_teams_incoming_directories($video_sports_incoming_dir . '/nba/teams');
- # Clean Elemental finished and incoming directories - Testing period
- #&clean_elemental_finished_directory($video_sports_finished_dir . '/elemental');
- #&clean_elemental_incoming_directory($video_sports_incoming_dir . '/elemental');
- # Clean Adactus Gfx directory
- &clean_cnn_adactus_gfx_directory($video_news_production_dir . '/videoscripts/cnn_adactus_gfx');
- # Clean news license usage directory
- &clean_news_license_usage_directory($video_news_production_dir . '/videoscripts/news_license_usage_monitor');
- # Clean directory
- &clean_directory($video_sports_incoming_dir . '/digitalrapids');
- # Clean sub directories
- &clean_sub_directories($video_sports_finished_dir . '/digitalrapids');
- # Clean thumbnail directories - Will not be needed after properties move to CMS3
- # Clean incoming directories
- ######## To keep SAG Awards Archived files alive ########
- log_system("touch /video/sports/finished/tbs/videos_repository/sag_archived_redcarpet/playList.xml");
- log_system("touch /video/sports/finished/tbs/videos_repository/sag_archived_redcarpet/sag_awards_redcarpet.mp4");
- #########################################################
- # Finish Logging
- log_complete();
- #################
- ## Subroutines ##
- #################
- sub clean_video_repository_directories {
- log_data("Subroutine: clean_video_repository_directories");
-
- my $video_finished_dir = shift;
-
- # Repository directories array
- my @directories = '';
- if ($video_finished_dir =~ /news/) { # News directory
- @directories = ('cnn', 'cnne', 'hln', 'money', 'ttn');
- } elsif ($video_finished_dir =~ /sports/) { # Sports directory
- @directories = ('adultswim', 'cartoon', 'nba', 'ncaa', 'pga', 'si', 'tbs', 'tcm', 'tntla', 'tnt', 'trutv');
- } else { # Unknown directory
- log_error("Unknown directory: " . $video_finished_dir);
- return;
- }
- # Process repository directories
- log_data("Process repository directories");
- foreach my $directory (@directories) {
- # Build repository directory path
- my $repository_directory = $video_finished_dir . "/$directory/videos_repository";
- log_data("Processing repository directory: " . $repository_directory);
-
- # Get list of files
- log_data("Get list of files");
- my @files_array = sort(qx `/usr/bin/find $repository_directory -type f`);
-
- # Process files
- foreach my $file (@files_array) {
- log_data("Processing file: " . $file);
-
- # Get file's last modified time
- chomp $file;
- my $file_timestamp = (stat($file))[9];
- log_data("File last modified: " . localtime($file_timestamp) . " (" . $file_timestamp . ")");
-
- # Determine time difference
- my $file_time_difference = int(($current_time_epoch - $file_timestamp)/(60 * 60 * 24));
- log_data("File time difference: " . $file_time_difference . " day(s)");
-
- # Delete files older than 7 days
- if ($file_time_difference > 7) {
- log_data("Delete file: " . $file);
- log_system("/bin/rm -f \'$file\'");
- }
- }
-
- # Get list of day directories
- log_data("Get list of day directories");
- my @day_directories_array = sort(grep(/\d{4}\/\d{2}\/\d{2}$/, qx `/usr/bin/find $repository_directory -type d`));
-
- # Process day directories
- foreach my $day_directory (@day_directories_array) {
- log_data("Processing day directory: " . $day_directory);
-
- # Extract day directory date info
- my ($day_dir_year, $day_dir_month, $day_dir_day) = ($day_directory =~ /(\d{4})\/(\d{2})\/(\d{2})/);
- log_data("Day directory date: " . $day_dir_year . "/" . $day_dir_month . "/" . $day_dir_day);
-
- # Set day directory modified time
- my $day_directory_timestamp = Date_SecsSince1970GMT($day_dir_month, $day_dir_day, $day_dir_year, $current_hour, $current_minute, 00);
- log_data("Day directory last modified: " . localtime($day_directory_timestamp) . " (" . $day_directory_timestamp . ")");
-
- # Determine time difference
- my $day_directory_time_difference = int(($current_time_epoch - $day_directory_timestamp)/(60 * 60 * 24));
- log_data("Day directory time difference: " . $day_directory_time_difference . " day(s)");
-
- # Delete day directories older than 7 days
- if ($day_directory_time_difference > 7) {
- log_data("Delete day directory: " . $day_directory);
- log_system("/bin/rm -f -r $day_directory");
- }
- }
-
- # Get list of month directories
- log_data("Get list of month directories");
- my @month_directories_array = sort(grep(/\d{4}\/\d{2}$/, qx `/usr/bin/find $repository_directory -type d`));
-
- # Process month directories
- foreach my $month_directory (@month_directories_array) {
- log_data("Processing month directory: " . $month_directory);
- chomp $month_directory;
-
- # Determine file's last modified time
- my $month_directory_timestamp = (stat($month_directory))[9];
- log_data("Month directory last modified: " . localtime($month_directory_timestamp));
-
- # Determine time difference
- my $month_directory_time_difference = int(($current_time_epoch - $month_directory_timestamp)/(60 * 60 * 24));
- log_data("Month directory time difference: " . $month_directory_time_difference . " day(s)");
-
- # Delete month directories older than 30 days
- if ($month_directory_time_difference > 30) {
- log_data("Delete month directory: " . $month_directory);
- log_system("/bin/rm -f -r $month_directory");
- }
- }
-
- # Get list of year directories
- log_data("Get list of year directories");
- my @year_directories_array = sort(grep(/\d{4}$/, qx `/usr/bin/find $repository_directory -type d`));
-
- # Process year directories
- foreach my $year_directory (@year_directories_array) {
- log_data("Processing year directory: " . $year_directory);
-
- # Extract year directory date info
- my ($year_dir_year) = ($year_directory =~ /(\d{4})/);
- log_data("Year directory date: " . $year_dir_year);
-
- # Delete year directories if current year is different and month is 02
- if (($year_dir_year ne $current_year)&&($current_month eq '02')) {
- log_data("Delete year directory: " . $year_directory);
- log_system("/bin/rm -f -r $year_directory");
- }
- }
-
- }
- }
- sub clean_preprocessor_directories {
- log_data("Subroutine: clean_preprocessor_directories");
- # Preprocessor directories array
- my @directories = ($video_news_preprocessor_dir, $video_sports_preprocessor_dir);
- # Process preprocessor directories
- log_data("Process preprocessor directories");
- foreach my $preprocessor_directory (@directories) {
- log_data("Preprocessor directory: " . $preprocessor_directory);
-
- # Get list of files
- log_data("Get list of files");
- my @files_array = sort(qx `/usr/bin/find $preprocessor_directory -type f`);
-
- # Process files
- foreach my $file (@files_array) {
- log_data("Processing file: " . $file);
-
- # Get file's last modified time
- chomp $file;
- my $file_timestamp = (stat($file))[9];
- log_data("File last modified: " . localtime($file_timestamp) . " (" . $file_timestamp . ")");
-
- # Determine time difference
- my $file_time_difference = int(($current_time_epoch - $file_timestamp)/(60 * 60 * 24));
- log_data("File time difference: " . $file_time_difference . " day(s)");
-
- # Delete files older than 3 days
- if ($file_time_difference > 3) {
- log_data("Delete file: " . $file);
- log_system("/bin/rm -f \'$file\'");
- }
- }
-
- # Get list of directories
- log_data("Get list of directories");
- my @directories_array = sort(qx `/usr/bin/find $preprocessor_directory -type d`);
-
- # Process directories
- foreach my $directory (@directories_array) {
- log_data("Processing directory: " . $directory);
- chomp $directory;
-
- # Determine file's last modified time
- my $directory_timestamp = (stat($directory))[9];
- log_data("Directory last modified: " . localtime($directory_timestamp));
-
- # Determine time difference
- my $directory_time_difference = int(($current_time_epoch - $directory_timestamp)/(60 * 60 * 24));
- log_data("Directory time difference: " . $directory_time_difference . " day(s)");
-
- # Delete directories older than 3 days
- if ($directory_time_difference > 3) {
- log_data("Delete directory: " . $directory);
- log_system("/bin/rm -f -r $directory");
- }
- }
- }
- }
- sub clean_logs_directories {
- log_data("Subroutine: clean_logs_directories");
-
- # Get list of log files
- log_data("Get list of log files");
- my @log_files_array = sort(grep(/.log$/, qx `/usr/bin/find $scripts_logs_dir -type f`));
-
- # Process log files
- foreach my $log_file (@log_files_array) {
- log_data("Processing log file: " . $log_file);
-
- # Get log directory name
- my ($log_directory_name) = ($log_file =~ /\/logs\/(.+)\//);
- log_data("Log directory name: " . $log_directory_name);
-
- # Get file's last modified time
- chomp $log_file;
- my $log_file_timestamp = (stat($log_file))[9];
- log_data("Log file last modified: " . localtime($log_file_timestamp) . " (" . $log_file_timestamp . ")");
-
- # Determine time difference
- my $log_file_time_difference = int(($current_time_epoch - $log_file_timestamp)/(60 * 60 * 24));
- log_data("Log file time difference: " . $log_file_time_difference . " day(s)");
-
- # Get the local host name
- my $local_host_name = hostname();
- if ($local_host_name =~ /turner.com/) { # Remove turner domain
- ($local_host_name) = ($local_host_name =~ /(.+).turner.com/);
- }
- log_data("Local Host Name: " . $local_host_name);
-
- # Determine which log backup directory to use
- my $log_backup_dir = '';
- if (($log_directory_name =~ /cnn_/)||($log_directory_name =~ /cnne_/)||($log_directory_name =~ /money_/)||($log_directory_name =~ /hln_/)||($log_directory_name =~ /news_/)) { # News log directory
- log_data("News log directory");
-
- # Set the log backup directory path
- $log_backup_dir = $video_news_logs_backup_dir . '/' . $local_host_name . '/' . $log_directory_name;
- } else { # Sports log directory
- log_data("Sports log directory");
-
- # Set the log backup directory path
- $log_backup_dir = $video_sports_logs_backup_dir . '/' . $local_host_name . '/' . $log_directory_name;
- }
- log_data("Log backup directory path: " . $log_backup_dir);
-
- # Check if log backup directory exists
- if (!(-d $log_backup_dir)) { # Log backup directory not found
- log_error("Log backup directory not found: " . $log_backup_dir);
-
- # Create missing directory
- log_system("mkdir $log_backup_dir");
- chmod(0775, $log_backup_dir);
- }
-
- # Move to log to backup directory if older than 1 day
- if ($log_file_time_difference >= 1) {
- log_data("Move file: " . $log_file);
- log_system("mv $log_file $log_backup_dir");
- }
- }
-
- # Get list of news backup log files
- log_data("Get list of news backup log files");
- my @news_log_backup_files_array = sort(grep(/.log$/, qx `/usr/bin/find $video_news_logs_backup_dir -type f`));
-
- # Process news backup log files
- foreach my $news_log_backup_file (@news_log_backup_files_array) {
- log_data("Processing news backup log file: " . $news_log_backup_file);
-
- # Get file's last modified time
- chomp $news_log_backup_file;
- my $news_backup_log_file_timestamp = (stat($news_log_backup_file))[9];
- log_data("News backup log file last modified: " . localtime($news_backup_log_file_timestamp) . " (" . $news_backup_log_file_timestamp . ")");
-
- # Determine time difference
- my $news_backup_log_file_time_difference = int(($current_time_epoch - $news_backup_log_file_timestamp)/(60 * 60 * 24));
- log_data("News backup log file time difference: " . $news_backup_log_file_time_difference . " day(s)");
-
- # Delete log backup files older than 15 days
- if ($news_backup_log_file_time_difference > 15) {
- log_data("Delete news log backup file: " . $news_log_backup_file);
- log_system("/bin/rm -f $news_log_backup_file");
- }
- }
-
- # Get list of sports backup log files
- log_data("Get list of sports backup log files");
- my @sports_log_backup_files_array = sort(grep(/.log$/, qx `/usr/bin/find $video_sports_logs_backup_dir -type f`));
-
- # Process sports backup log files
- foreach my $sports_log_backup_file (@sports_log_backup_files_array) {
- log_data("Processing sports backup log file: " . $sports_log_backup_file);
-
- # Get file's last modified time
- chomp $sports_log_backup_file;
- my $sports_backup_log_file_timestamp = (stat($sports_log_backup_file))[9];
- log_data("Sports backup log file last modified: " . localtime($sports_backup_log_file_timestamp) . " (" . $sports_backup_log_file_timestamp . ")");
-
- # Determine time difference
- my $sports_backup_log_file_time_difference = int(($current_time_epoch - $sports_backup_log_file_timestamp)/(60 * 60 * 24));
- log_data("Sports backup log file time difference: " . $sports_backup_log_file_time_difference . " day(s)");
-
- # Delete log backup files older than 15 days
- if ($sports_backup_log_file_time_difference > 15) {
- log_data("Delete sports log backup file: " . $sports_log_backup_file);
- log_system("/bin/rm -f $sports_log_backup_file");
- }
- }
- }
- sub clean_done_directories {
- log_data("Subroutine: clean_logs_directories");
-
- # Get list of files
- log_data("Get list of files for /done/ directories");
- my @done1_files_array = sort(grep(/\/done\//, qx `/usr/bin/find $scripts_root_dir -type f`));
-
- # Process files
- foreach my $file (@done1_files_array) {
- log_data("Processing file: " . $file);
-
- # Get file's last modified time
- chomp $file;
- my $file_timestamp = (stat($file))[9];
- log_data("File last modified: " . localtime($file_timestamp) . " (" . $file_timestamp . ")");
-
- # Determine time difference
- my $file_time_difference = int(($current_time_epoch - $file_timestamp)/(60 * 60 * 24));
- log_data("File time difference: " . $file_time_difference . " day(s)");
-
- # Delete files older than 15 days
- if ($file_time_difference > 15) {
- log_data("Delete file: " . $file);
- log_system("/bin/rm -f \'$file\'");
- }
- }
-
- # Get list of files
- log_data("Get list of files for _done/ directories");
- my @done2_files_array = sort(grep(/_done\//, qx `/usr/bin/find $scripts_root_dir -type f`));
-
- # Process files
- foreach my $file (@done2_files_array) {
- log_data("Processing file: " . $file);
-
- # Get file's last modified time
- chomp $file;
- my $file_timestamp = (stat($file))[9];
- log_data("File last modified: " . localtime($file_timestamp) . " (" . $file_timestamp . ")");
-
- # Determine time difference
- my $file_time_difference = int(($current_time_epoch - $file_timestamp)/(60 * 60 * 24));
- log_data("File time difference: " . $file_time_difference . " day(s)");
-
- # Delete files older than 15 days
- if ($file_time_difference > 15) {
- log_data("Delete file: " . $file);
- log_system("/bin/rm -f \'$file\'");
- }
- }
-
- # Get list of files
- log_data("Get list of files for /nba_league_pass/done_ directories");
- my @done3_files_array = sort(grep(/\/nba_league_pass\/done_/, qx `/usr/bin/find $scripts_root_dir -type f`));
-
- # Process files
- foreach my $file (@done3_files_array) {
- log_data("Processing file: " . $file);
-
- # Get file's last modified time
- chomp $file;
- my $file_timestamp = (stat($file))[9];
- log_data("File last modified: " . localtime($file_timestamp) . " (" . $file_timestamp . ")");
-
- # Determine time difference
- my $file_time_difference = int(($current_time_epoch - $file_timestamp)/(60 * 60 * 24));
- log_data("File time difference: " . $file_time_difference . " day(s)");
-
- # Delete files older than 15 days
- if ($file_time_difference > 15) {
- log_data("Delete file: " . $file);
- log_system("/bin/rm -f \'$file\'");
- }
- }
- }
- sub clean_quickclips_directory {
- log_data("Subroutine: clean_quickclips_directory");
-
- # Build quickclips directory path
- my $quickclips_directory = $video_news_finished_dir . "/cnn/quickclips";
- log_data("Processing quickclips directory: " . $quickclips_directory);
-
- # Get list of directories
- log_data("Get list of directories");
- my @directories_array = sort(qx `/usr/bin/find $quickclips_directory -type d`);
-
- # Process directories
- foreach my $directory (@directories_array) {
- log_data("Processing directory: " . $directory);
- chomp $directory;
-
- # Determine file's last modified time
- my $directory_timestamp = (stat($directory))[9];
- log_data("Directory last modified: " . localtime($directory_timestamp));
-
- # Determine time difference
- my $directory_time_difference = int(($current_time_epoch - $directory_timestamp)/(60 * 60 * 24));
- log_data("Directory time difference: " . $directory_time_difference . " day(s)");
-
- # Delete directories older than 7 days
- if ($directory_time_difference > 7) {
- log_data("Delete directory: " . $directory);
- log_system("/bin/rm -f -r $directory");
- }
- }
- }
- sub clean_failed_counter_directory {
- log_data("Subroutine: clean_failed_counter_directory");
-
- # Read failed counter directory
- my $failed_counter_directory = $scripts_core_dir . "/failed_handler/counter";
- log_data("Reading failed counter directory: $failed_counter_directory");
- opendir(FAILEDCOUNTERDIR, $failed_counter_directory) || log_error("Couldn't open $failed_counter_directory : $!");
- my @failed_counter_array = grep (/.txt$/, sort(readdir(FAILEDCOUNTERDIR)));
- close(FAILEDCOUNTERDIR);
-
- # Process failed counter files
- foreach my $failed_counter_file (@failed_counter_array) {
- log_data("Processing failed counter file: " . $failed_counter_file);
- chomp $failed_counter_file;
-
- # Determine file's last modified time
- my $failed_counter_file_timestamp = (stat("$failed_counter_directory/$failed_counter_file"))[9];
- log_data("File last modified: " . localtime($failed_counter_file_timestamp));
-
- # Determine time difference
- my $failed_counter_file_time_difference = int(($current_time_epoch - $failed_counter_file_timestamp)/(60 * 60 * 24));
- log_data("File time difference: " . $failed_counter_file_time_difference . " day(s)");
-
- # Delete files older than 7 days
- if ($failed_counter_file_time_difference > 7) {
- log_data("Delete file: " . $failed_counter_directory . "/" . $failed_counter_file);
- log_system("/bin/rm -f $failed_counter_directory/$failed_counter_file");
- }
- }
- }
- sub clean_news_jobs_notifications_monitor_directory {
- log_data("Subroutine: clean_news_jobs_notifications_monitor_directory");
-
- # Read news notifications XML directory
- my $news_notifications_xml_directory = $video_news_production_dir . "/videoscripts/news_jobs_notifications_monitor/notification_xmls";
- log_data("Reading news notifications XML directory: $news_notifications_xml_directory");
- opendir(NEWSXMLDIR, $news_notifications_xml_directory) || log_error("Couldn't open $news_notifications_xml_directory : $!");
- my @news_notification_xml_array = grep (/.xml$/, sort(readdir(NEWSXMLDIR)));
- close(NEWSXMLDIR);
-
- # Process news notifications XML files
- foreach my $news_notification_xml_file (@news_notification_xml_array) {
- log_data("Processing news notifications XML file: " . $news_notification_xml_file);
- chomp $news_notification_xml_file;
-
- # Determine file's last modified time
- my $news_notification_xml_file_timestamp = (stat("$news_notifications_xml_directory/$news_notification_xml_file"))[9];
- log_data("File last modified: " . localtime($news_notification_xml_file_timestamp));
-
- # Determine time difference
- my $news_notification_xml_file_time_difference = int(($current_time_epoch - $news_notification_xml_file_timestamp)/(60 * 60 * 24));
- log_data("File time difference: " . $news_notification_xml_file_time_difference . " day(s)");
-
- # Delete files older than 7 days
- if ($news_notification_xml_file_time_difference > 7) {
- log_data("Delete file: " . $news_notifications_xml_directory . "/" . $news_notification_xml_file);
- log_system("/bin/rm -f $news_notifications_xml_directory/$news_notification_xml_file");
- }
- }
- }
- sub clean_sports_jobs_notifications_monitor_directory {
- log_data("Subroutine: clean_sports_jobs_notifications_monitor_directory");
-
- # Read sports notifications XML directory
- my $sports_notifications_xml_directory = $video_sports_production_dir . "/videoscripts/sports_jobs_notifications_monitor/notification_xmls";
- log_data("Reading sports notifications XML directory: $sports_notifications_xml_directory");
- opendir(SPORTSXMLDIR, $sports_notifications_xml_directory) || log_error("Couldn't open $sports_notifications_xml_directory : $!");
- my @sports_notification_xml_array = grep (/.xml$/, sort(readdir(SPORTSXMLDIR)));
- close(SPORTSXMLDIR);
-
- # Process sports notifications XML files
- foreach my $sports_notification_xml_file (@sports_notification_xml_array) {
- log_data("Processing sports notifications XML file: " . $sports_notification_xml_file);
- chomp $sports_notification_xml_file;
-
- # Determine file's last modified time
- my $sports_notification_xml_file_timestamp = (stat("$sports_notifications_xml_directory/$sports_notification_xml_file"))[9];
- log_data("File last modified: " . localtime($sports_notification_xml_file_timestamp));
-
- # Determine time difference
- my $sports_notification_xml_file_time_difference = int(($current_time_epoch - $sports_notification_xml_file_timestamp)/(60 * 60 * 24));
- log_data("File time difference: " . $sports_notification_xml_file_time_difference . " day(s)");
-
- # Delete files older than 7 days
- if ($sports_notification_xml_file_time_difference > 7) {
- log_data("Delete file: " . $sports_notifications_xml_directory . "/" . $sports_notification_xml_file);
- log_system("/bin/rm -f $sports_notifications_xml_directory/$sports_notification_xml_file");
- }
- }
- }
- sub clean_veas_directory {
- log_data("Subroutine: clean_veas_directory");
-
- my $video_incoming_dir = shift;
-
- # Veas directories array
- my @directories = '';
- if ($video_incoming_dir =~ /news/) { # News directory
- @directories = ('cnn','money','veas');
- } elsif ($video_incoming_dir =~ /sports/) { # Sports directory
- @directories = ('si','nba');
- } else { # Unknown directory
- log_data("Unknown directory: " . $video_incoming_dir);
- return;
- }
- # Process veas directories
- log_data("Process veas directories");
- foreach my $directory (@directories) {
- # Build veas directory path
- my $veas_directory = $video_incoming_dir . "/veas/$directory";
- log_data("Processing veas directory: " . $veas_directory);
-
- # Get list of files
- log_data("Get list of files");
- my @files_array = sort(qx `/usr/bin/find $veas_directory -type f`);
-
- # Process files
- foreach my $file (@files_array) {
- log_data("Processing file: " . $file);
-
- # Get file's last modified time
- chomp $file;
- my $file_timestamp = (stat($file))[9];
- log_data("File last modified: " . localtime($file_timestamp) . " (" . $file_timestamp . ")");
-
- # Determine time difference
- my $file_time_difference = int(($current_time_epoch - $file_timestamp)/(60 * 60 * 24));
- log_data("File time difference: " . $file_time_difference . " day(s)");
-
- # Delete files older than 10 days
- if ($file_time_difference > 10) {
- log_data("Delete file: " . $file);
- log_system("/bin/rm -f \'$file\'");
- }
- }
-
- # Get list of day directories
- log_data("Get list of day directories");
- my @day_directories_array = sort(grep(/\d{4}\/\d{2}\/\d{2}$/, qx `/usr/bin/find $veas_directory -type d`));
-
- # Process day directories
- foreach my $day_directory (@day_directories_array) {
- log_data("Processing day directory: " . $day_directory);
-
- # Extract day directory date info
- my ($day_dir_year, $day_dir_month, $day_dir_day) = ($day_directory =~ /(\d{4})\/(\d{2})\/(\d{2})/);
- log_data("Day directory date: " . $day_dir_year . "/" . $day_dir_month . "/" . $day_dir_day);
-
- # Set day directory modified time
- my $day_directory_timestamp = Date_SecsSince1970GMT($day_dir_month, $day_dir_day, $day_dir_year, $current_hour, $current_minute, 00);
- log_data("Day directory last modified: " . localtime($day_directory_timestamp) . " (" . $day_directory_timestamp . ")");
-
- # Determine time difference
- my $day_directory_time_difference = int(($current_time_epoch - $day_directory_timestamp)/(60 * 60 * 24));
- log_data("Day directory time difference: " . $day_directory_time_difference . " day(s)");
-
- # Delete day directories older than 10 days
- if ($day_directory_time_difference > 10) {
- log_data("Delete day directory: " . $day_directory);
- log_system("/bin/rm -f -r $day_directory");
- }
- }
-
- # Get list of month directories
- log_data("Get list of month directories");
- my @month_directories_array = sort(grep(/\d{4}\/\d{2}$/, qx `/usr/bin/find $veas_directory -type d`));
-
- # Process month directories
- foreach my $month_directory (@month_directories_array) {
- log_data("Processing month directory: " . $month_directory);
- chomp $month_directory;
-
- # Determine file's last modified time
- my $month_directory_timestamp = (stat($month_directory))[9];
- log_data("Month directory last modified: " . localtime($month_directory_timestamp));
-
- # Determine time difference
- my $month_directory_time_difference = int(($current_time_epoch - $month_directory_timestamp)/(60 * 60 * 24));
- log_data("Month directory time difference: " . $month_directory_time_difference . " day(s)");
-
- # Delete month directories older than 30 days
- if ($month_directory_time_difference > 30) {
- log_data("Delete month directory: " . $month_directory);
- log_system("/bin/rm -f -r $month_directory");
- }
- }
-
- # Get list of year directories
- log_data("Get list of year directories");
- my @year_directories_array = sort(grep(/\d{4}$/, qx `/usr/bin/find $veas_directory -type d`));
-
- # Process year directories
- foreach my $year_directory (@year_directories_array) {
- log_data("Processing year directory: " . $year_directory);
-
- # Extract year directory date info
- my ($year_dir_year) = ($year_directory =~ /(\d{4})/);
- log_data("Year directory date: " . $year_dir_year);
-
- # Delete year directories if current year is different and month is 02
- if (($year_dir_year ne $current_year)&&($current_month eq '02')) {
- log_data("Delete year directory: " . $year_directory);
- log_system("/bin/rm -f -r $year_directory");
- }
- }
- }
- }
- sub clean_temp_directories {
- log_data("Subroutine: clean_temp_directories");
-
- my $video_temp_dir = shift;
-
- # Read temp directory
- log_data("Reading temp directory: " . $video_temp_dir);
- opendir(TEMDIR, $video_temp_dir) || log_error("Couldn't open $video_temp_dir : $!");
- my @temp_directories_array = sort(readdir(TEMDIR));
- close(TEMDIR);
-
- # Process temp directories
- foreach my $temp_sub_directory (@temp_directories_array) {
- if (($temp_sub_directory !~ /DS_Store/)&&($temp_sub_directory !~ /workers/)&&($temp_sub_directory ne '.')&&($temp_sub_directory ne '..')) {
- log_data("Processing temp sub-directory: " . $temp_sub_directory);
-
- # Read temp sub-directory
- log_data("Reading temp sub-directory: " . $video_temp_dir . "/" . $temp_sub_directory);
- opendir(TEMSUBDIR, "$video_temp_dir/$temp_sub_directory") || log_error("Couldn't open $video_temp_dir/$temp_sub_directory : $!");
- my @temp_sub_directory_array = sort(readdir(TEMSUBDIR));
- close(TEMSUBDIR);
-
- foreach my $temp_sub_directory_file (@temp_sub_directory_array) {
- if (($temp_sub_directory_file ne '.')&&($temp_sub_directory_file ne '..')) {
- log_data("Processing temp sub-directory file: " . $temp_sub_directory_file);
-
- # Determine temp file's last modified time
- my $temp_file_timestamp = (stat("$video_temp_dir/$temp_sub_directory/$temp_sub_directory_file"))[9];
- log_data("Temp file last modified: " . localtime($temp_file_timestamp));
-
- # Determine time difference
- my $temp_file_time_difference = int(($current_time_epoch - $temp_file_timestamp)/(60 * 60 * 24));
- log_data("Temp file time difference: " . $temp_file_time_difference . " day(s)");
-
- # Delete files older than 3 days
- if ($temp_file_time_difference > 3) {
- log_data("Delete temp file: $video_temp_dir/$temp_sub_directory/$temp_sub_directory_file");
- log_system("/bin/rm -f -r $video_temp_dir/$temp_sub_directory/$temp_sub_directory_file");
- }
- }
- }
- }
- }
- }
- sub clean_agility_profiles_backup_san_directory {
- log_data("Subroutine: clean_agility_profiles_backup_san_directory");
-
- my $video_production_dir = shift;
-
- # Read profiles backup directory
- my $video_profiles_backup_directory = $video_production_dir . "/profiles_backup";
- log_data("Read profiles backup directory: " . $video_profiles_backup_directory);
- opendir(PROFILESDIR, $video_profiles_backup_directory) || log_error("Couldn't open $video_profiles_backup_directory : $!");
- my @video_zip_files_array = grep (/.zip$/, sort(readdir(PROFILESDIR)));
- close(PROFILESDIR);
-
- # Process profiles backup Zip files
- foreach my $video_zip_file (@video_zip_files_array) {
- log_data("Processing profiles backup Zip file: " . $video_zip_file);
- chomp $video_zip_file;
-
- # Determine file's last modified time
- my $video_profiles_backup_zip_file_timestamp = (stat("$video_profiles_backup_directory/$video_zip_file"))[9];
- log_data("File last modified: " . localtime($video_profiles_backup_zip_file_timestamp));
-
- # Determine time difference
- my $video_profiles_backup_zip_file_time_difference = int(($current_time_epoch - $video_profiles_backup_zip_file_timestamp)/(60 * 60 * 24));
- log_data("File time difference: " . $video_profiles_backup_zip_file_time_difference . " day(s)");
-
- # Delete files older than 30 days
- if ($video_profiles_backup_zip_file_time_difference > 30) {
- log_data("Delete file: " . $video_profiles_backup_directory . "/" . $video_zip_file);
- log_system("/bin/rm -f $video_profiles_backup_directory/$video_zip_file");
- }
- }
- }
- sub clean_agility_profiles_backup_local_directory {
- log_data("Subroutine: clean_agility_profiles_backup_local_directory");
-
- # Read profiles backup directory
- my $video_profiles_backup_directory = $scripts_core_dir . "/agility_profiles/profiles_backup";
- log_data("Read profiles backup directory: " . $video_profiles_backup_directory);
- opendir(PROFILESDIR, $video_profiles_backup_directory) || log_error("Couldn't open $video_profiles_backup_directory : $!");
- my @video_zip_files_array = grep (/.zip$/, sort(readdir(PROFILESDIR)));
- close(PROFILESDIR);
-
- # Process profiles backup Zip files
- foreach my $video_zip_file (@video_zip_files_array) {
- log_data("Processing profiles backup Zip file: " . $video_zip_file);
- chomp $video_zip_file;
-
- # Determine file's last modified time
- my $video_profiles_backup_zip_file_timestamp = (stat("$video_profiles_backup_directory/$video_zip_file"))[9];
- log_data("File last modified: " . localtime($video_profiles_backup_zip_file_timestamp));
-
- # Determine time difference
- my $video_profiles_backup_zip_file_time_difference = int(($current_time_epoch - $video_profiles_backup_zip_file_timestamp)/(60 * 60 * 24));
- log_data("File time difference: " . $video_profiles_backup_zip_file_time_difference . " day(s)");
-
- # Delete files older than 15 days
- if ($video_profiles_backup_zip_file_time_difference > 15) {
- log_data("Delete file: " . $video_profiles_backup_directory . "/" . $video_zip_file);
- log_system("/bin/rm -f $video_profiles_backup_directory/$video_zip_file");
- }
- }
- }
- sub clean_sports_partners_directories {
- log_data("Subroutine: clean_sports_partners_directories");
-
- # Get list of files
- log_data("Get list of files");
- my @files_array = sort(grep(/.txt$/, qx `/usr/bin/find $video_sports_partners_dir -type f`));
-
- # Process files
- foreach my $file (@files_array) {
- log_data("Processing file: " . $file);
-
- # Get file's last modified time
- chomp $file;
- my $file_timestamp = (stat($file))[9];
- log_data("File last modified: " . localtime($file_timestamp) . " (" . $file_timestamp . ")");
-
- # Determine time difference
- my $file_time_difference = int(($current_time_epoch - $file_timestamp)/(60 * 60 * 24));
- log_data("File time difference: " . $file_time_difference . " day(s)");
-
- # Delete files older than 60 days
- if ($file_time_difference > 60) {
- log_data("Delete file: " . $file);
- log_system("/bin/rm -f \'$file\'");
- }
- }
- }
- sub clean_elemental_finished_directory {
- log_data("Subroutine: clean_elemental_finished_directory");
-
- my $elemental_finished_dir = shift;
- log_data("Elemental finished directory: " . $elemental_finished_dir);
-
- # Get list of files
- log_data("Get list of files");
- my @files_array = sort(qx `/usr/bin/find $elemental_finished_dir -type f`);
-
- # Process files
- foreach my $file (@files_array) {
- log_data("Processing file: " . $file);
-
- # Get file's last modified time
- chomp $file;
- my $file_timestamp = (stat($file))[9];
- log_data("File last modified: " . localtime($file_timestamp) . " (" . $file_timestamp . ")");
-
- # Determine time difference
- my $file_time_difference = int(($current_time_epoch - $file_timestamp)/(60 * 60 * 24));
- log_data("File time difference: " . $file_time_difference . " day(s)");
-
- # Delete files older than 7 days
- if ($file_time_difference > 7) {
- log_data("Delete file: " . $file);
- log_system("/bin/rm -f \'$file\'");
- }
- }
-
- # Get list of month directories
- log_data("Get list of month directories");
- my @month_directories_array = sort(grep(/\d{4}\/\d{2}$/, qx `/usr/bin/find $elemental_finished_dir -type d`));
-
- # Process month directories
- foreach my $month_directory (@month_directories_array) {
- log_data("Processing month directory: " . $month_directory);
- chomp $month_directory;
-
- # Determine file's last modified time
- my $month_directory_timestamp = (stat($month_directory))[9];
- log_data("Month directory last modified: " . localtime($month_directory_timestamp));
-
- # Determine time difference
- my $month_directory_time_difference = int(($current_time_epoch - $month_directory_timestamp)/(60 * 60 * 24));
- log_data("Month directory time difference: " . $month_directory_time_difference . " day(s)");
-
- # Delete month directories older than 30 days
- if ($month_directory_time_difference > 30) {
- log_data("Delete month directory: " . $month_directory);
- log_system("/bin/rm -f -r $month_directory");
- }
- }
-
- # Get list of year directories
- log_data("Get list of year directories");
- my @year_directories_array = sort(grep(/\d{4}$/, qx `/usr/bin/find $elemental_finished_dir -type d`));
-
- # Process year directories
- foreach my $year_directory (@year_directories_array) {
- log_data("Processing year directory: " . $year_directory);
-
- # Extract year directory date info
- my ($year_dir_year) = ($year_directory =~ /(\d{4})/);
- log_data("Year directory date: " . $year_dir_year);
-
- # Delete year directories if current year is different and month is 02
- if (($year_dir_year ne $current_year)&&($current_month eq '02')) {
- log_data("Delete year directory: " . $year_directory);
- log_system("/bin/rm -f -r $year_directory");
- }
- }
- }
- sub clean_elemental_incoming_directory {
- log_data("Subroutine: clean_elemental_incoming_directory");
-
- my $elemental_incoming_dir = shift;
- log_data("Elemental incoming directory: " . $elemental_incoming_dir);
-
- # Get list of files
- log_data("Get list of files");
- my @files_array = sort(qx `/usr/bin/find $elemental_incoming_dir -type f`);
-
- # Process files
- foreach my $file (@files_array) {
- log_data("Processing file: " . $file);
-
- # Get file's last modified time
- chomp $file;
- my $file_timestamp = (stat($file))[9];
- log_data("File last modified: " . localtime($file_timestamp) . " (" . $file_timestamp . ")");
-
- # Determine time difference
- my $file_time_difference = int(($current_time_epoch - $file_timestamp)/(60 * 60 * 24));
- log_data("File time difference: " . $file_time_difference . " day(s)");
-
- # Delete files older than 7 days
- if ($file_time_difference > 7) {
- log_data("Delete file: " . $file);
- log_system("/bin/rm -f \'$file\'");
- }
- }
- }
- sub clean_nba_teams_incoming_directories {
- log_data("Subroutine: clean_nba_teams_incoming_directories");
-
- my $nba_teams_incoming_dir = shift;
- log_data("NBA teams incoming directory: " . $nba_teams_incoming_dir);
-
- # Get list of files
- log_data("Get list of files");
- my @files_array = sort(grep(/.flv$/, qx `/usr/bin/find $nba_teams_incoming_dir -type f`));
-
- # Process files
- foreach my $file (@files_array) {
- log_data("Processing file: " . $file);
-
- # Get file's last modified time
- chomp $file;
- my $file_timestamp = (stat($file))[9];
- log_data("File last modified: " . localtime($file_timestamp) . " (" . $file_timestamp . ")");
-
- # Determine time difference
- my $file_time_difference = int(($current_time_epoch - $file_timestamp)/(60 * 60 * 24));
- log_data("File time difference: " . $file_time_difference . " day(s)");
-
- # Delete files older than 15 days
- if ($file_time_difference > 15) {
- log_data("Delete file: " . $file);
- log_system("/bin/rm -f \'$file\'");
- }
- }
- }
- sub clean_cnn_adactus_gfx_directory {
- log_data("Subroutine: clean_cnn_adactus_gfx_directory");
-
- my $adactus_gfx_dir = shift;
- log_data("Adactus Gfx directory: " . $adactus_gfx_dir);
-
- # Get list of files
- log_data("Get list of files");
- my @files_array = sort(grep(/.xml$/, qx `/usr/bin/find $adactus_gfx_dir -type f`));
-
- # Process files
- foreach my $file (@files_array) {
- log_data("Processing file: " . $file);
-
- # Get file's last modified time
- chomp $file;
- my $file_timestamp = (stat($file))[9];
- log_data("File last modified: " . localtime($file_timestamp) . " (" . $file_timestamp . ")");
-
- # Determine time difference
- my $file_time_difference = int(($current_time_epoch - $file_timestamp)/(60 * 60 * 24));
- log_data("File time difference: " . $file_time_difference . " day(s)");
-
- # Delete files older than 7 days
- if ($file_time_difference > 7) {
- log_data("Delete file: " . $file);
- log_system("/bin/rm -f \'$file\'");
- }
- }
- }
- sub clean_news_license_usage_directory {
- log_data("Subroutine: clean_news_license_usage_directory");
-
- my $news_license_usage_dir = shift;
- log_data("News license usage directory: " . $news_license_usage_dir);
-
- # Get list of files
- log_data("Get list of files");
- my @files_array = sort(grep(/.xml$/, qx `/usr/bin/find $news_license_usage_dir -type f`));
-
- # Process files
- foreach my $file (@files_array) {
- log_data("Processing file: " . $file);
-
- # Get file's last modified time
- chomp $file;
- my $file_timestamp = (stat($file))[9];
- log_data("File last modified: " . localtime($file_timestamp) . " (" . $file_timestamp . ")");
-
- # Determine time difference
- my $file_time_difference = int(($current_time_epoch - $file_timestamp)/(60 * 60 * 24));
- log_data("File time difference: " . $file_time_difference . " day(s)");
-
- # Delete files older than 7 days
- if ($file_time_difference > 7) {
- log_data("Delete file: " . $file);
- log_system("/bin/rm -f \'$file\'");
- }
- }
- }
- sub clean_video_proxy_directories {
- log_data("Subroutine: clean_video_proxy_directories");
-
- my $video_finished_dir = shift;
-
- # Repository directories array
- my @directories = '';
- if ($video_finished_dir =~ /news/) { # News directory
- @directories = ('cnn', 'money');
- } elsif ($video_finished_dir =~ /sports/) { # Sports directory
- @directories = ('si', 'nba');
- } else { # Unknown directory
- log_error("Unknown directory: " . $video_finished_dir);
- return;
- }
- # Process repository directories
- log_data("Process repository directories");
- foreach my $directory (@directories) {
- # Build repository directory path
- my $repository_directory = $video_finished_dir . "/$directory/proxyoutput";
- log_data("Processing repository directory: " . $repository_directory);
-
- # Get list of files
- log_data("Get list of files");
- my @files_array = sort(qx `/usr/bin/find $repository_directory -type f`);
-
- # Process files
- foreach my $file (@files_array) {
- log_data("Processing file: " . $file);
-
- # Get file's last modified time
- chomp $file;
- my $file_timestamp = (stat($file))[9];
- log_data("File last modified: " . localtime($file_timestamp) . " (" . $file_timestamp . ")");
-
- # Determine time difference
- my $file_time_difference = int(($current_time_epoch - $file_timestamp)/(60 * 60 * 24));
- log_data("File time difference: " . $file_time_difference . " day(s)");
-
- # Delete files older than 7 days
- if ($file_time_difference > 7) {
- log_data("Delete file: " . $file);
- log_system("/bin/rm -f \'$file\'");
- }
- }
-
- # Get list of day directories
- log_data("Get list of day directories");
- my @day_directories_array = sort(grep(/\d{4}\/\d{2}\/\d{2}$/, qx `/usr/bin/find $repository_directory -type d`));
-
- # Process day directories
- foreach my $day_directory (@day_directories_array) {
- log_data("Processing day directory: " . $day_directory);
-
- # Extract day directory date info
- my ($day_dir_year, $day_dir_month, $day_dir_day) = ($day_directory =~ /(\d{4})\/(\d{2})\/(\d{2})/);
- log_data("Day directory date: " . $day_dir_year . "/" . $day_dir_month . "/" . $day_dir_day);
-
- # Set day directory modified time
- my $day_directory_timestamp = Date_SecsSince1970GMT($day_dir_month, $day_dir_day, $day_dir_year, $current_hour, $current_minute, 00);
- log_data("Day directory last modified: " . localtime($day_directory_timestamp) . " (" . $day_directory_timestamp . ")");
-
- # Determine time difference
- my $day_directory_time_difference = int(($current_time_epoch - $day_directory_timestamp)/(60 * 60 * 24));
- log_data("Day directory time difference: " . $day_directory_time_difference . " day(s)");
-
- # Delete day directories older than 7 days
- if ($day_directory_time_difference > 7) {
- log_data("Delete day directory: " . $day_directory);
- log_system("/bin/rm -f -r $day_directory");
- }
- }
-
- # Get list of month directories
- log_data("Get list of month directories");
- my @month_directories_array = sort(grep(/\d{4}\/\d{2}$/, qx `/usr/bin/find $repository_directory -type d`));
-
- # Process month directories
- foreach my $month_directory (@month_directories_array) {
- log_data("Processing month directory: " . $month_directory);
- chomp $month_directory;
-
- # Determine file's last modified time
- my $month_directory_timestamp = (stat($month_directory))[9];
- log_data("Month directory last modified: " . localtime($month_directory_timestamp));
-
- # Determine time difference
- my $month_directory_time_difference = int(($current_time_epoch - $month_directory_timestamp)/(60 * 60 * 24));
- log_data("Month directory time difference: " . $month_directory_time_difference . " day(s)");
-
- # Delete month directories older than 30 days
- if ($month_directory_time_difference > 30) {
- log_data("Delete month directory: " . $month_directory);
- log_system("/bin/rm -f -r $month_directory");
- }
- }
-
- # Get list of year directories
- log_data("Get list of year directories");
- my @year_directories_array = sort(grep(/\d{4}$/, qx `/usr/bin/find $repository_directory -type d`));
-
- # Process year directories
- foreach my $year_directory (@year_directories_array) {
- log_data("Processing year directory: " . $year_directory);
-
- # Extract year directory date info
- my ($year_dir_year) = ($year_directory =~ /(\d{4})/);
- log_data("Year directory date: " . $year_dir_year);
-
- # Delete year directories if current year is different and month is 02
- if (($year_dir_year ne $current_year)&&($current_month eq '02')) {
- log_data("Delete year directory: " . $year_directory);
- log_system("/bin/rm -f -r $year_directory");
- }
- }
-
- }
- }
- sub clean_directory {
- log_data("Subroutine: clean_directory");
-
- my $clean_dir = shift;
- log_data("Clean directory: " . $clean_dir);
-
- # Get list of files
- log_data("Get list of files");
- my @files_array = sort(qx `/usr/bin/find $clean_dir -type f`);
-
- # Process files
- foreach my $file (@files_array) {
- log_data("Processing file: " . $file);
-
- # Get file's last modified time
- chomp $file;
- my $file_timestamp = (stat($file))[9];
- log_data("File last modified: " . localtime($file_timestamp) . " (" . $file_timestamp . ")");
-
- # Determine time difference
- my $file_time_difference = int(($current_time_epoch - $file_timestamp)/(60 * 60 * 24));
- log_data("File time difference: " . $file_time_difference . " day(s)");
-
- # Delete files older than 7 days
- if ($file_time_difference > 7) {
- log_data("Delete file: " . $file);
- log_system("/bin/rm -f \'$file\'");
- }
- }
- }
- sub clean_sub_directories {
- log_data("Subroutine: clean_sub_directories");
-
- my $sub_directory = shift;
- log_data("Sub directory: " . $sub_directory);
-
- # Get list of files
- log_data("Get list of files");
- my @files_array = sort(qx `/usr/bin/find $sub_directory -type f`);
-
- # Process files
- foreach my $file (@fil…
Large files files are truncated, but you can click here to view the full file