Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/home/y/bin/perl -w
- use DBI;
- my %db_bar_L2;
- my @unique_L2_barcodes; ### unique L2 barcodes
- my @L2_barcodes_last_write_time;
- my @found_L2_barcodes_smurfdb;
- my @notfound_L2_barcodes_smurfdb;
- my @L_barcode_media_tapes; ## barcodes L2 convert to L
- my @L_barcodes_last_write_time;
- my @found_L_barcodes_smurfdb;
- my @notfound_L_barcodes_smurfdb;
- my @noL2_barcodes_media_tapes;
- my @noL2_barcodes_last_write_time;
- my @found_noL2_barcodes_smurfdb;
- my @notfound_noL2_barcodes_smurfdb;
- #####
- sub main{
- &check_duplicate_L2_barcodes;
- &L2_barcodes_last_write_time;
- # &convert_L2_to_L_barcodes;
- # &check_L_barcodes_last_write_time;
- # &convert_to_noL2_barcodes;
- # &check_noL2_barcodes_last_write_time;
- #merge_all_found_
- #get unique media_group
- #check last_write_time + media_group<today date
- #count =18153
- }
- &main;
- sub check_duplicate_L2_barcodes{
- my $count_media=`more media_tapes.txt|wc -l`;
- chomp($count_media);
- open(OUTPUT,">output\/unique_L2_media_tapes.txt");
- my $file='media_tapes.txt';
- open(INPUT,$file) or die;
- open(OUTPUT2,">output\/duplicated_L2_barcodes.txt");
- print "Searching $file ($count_media barcode count)...\n";
- while(defined(my $barcode=<INPUT>)){
- chomp($barcode);
- if(!exists($db_bar_L2{$barcode})){
- $db_bar_L2{$barcode}="$barcode";
- push(@unique_L2_barcodes,$barcode);
- print OUTPUT "$barcode\n";
- }else{
- print "found duplicated $barcode\n";
- print OUTPUT2 "$barcode\n";
- }
- }
- }
- close(OUTPUT);
- close(OUTPUT2);
- sub L2_barcodes_last_write_time{
- my $db="";
- my $user="";
- my $password="";
- my $dbh = DBI->connect ("DBI:mysql:database=$db:",
- $user,
- $password)
- or die "Can't connect to database: $DBI::err";
- open(OUTPUT,">output\/found_L2_barcodes_smurfdb.csv");
- print OUTPUT "host_id,hostname,path,job_id,unique_id_media,barcode,container_id,last_write_time,today_date,media_group,media_type\n";
- open(OUTPUT2,">output\/notfound_L2_barcodes_smurfdb.txt");
- my $total_tapes=@unique_L2_barcodes;
- print "get L2_barcodes_last_write_time ($total_tapes barcode count)...\n";
- my $count=0;
- foreach my $barcode(@unique_L2_barcodes){
- $found=0;
- my $sql="select
- jh.host_id,jh.hostname,jh.path,jm.job_id,left(m.media_id,40) as media_id,
- m.barcode,m.container_id,date_format(from_unixtime(m.last_write_time),\'%Y-%m-%d\') as last_write_time,
- date(now()) as today_date,
- m.media_group,m.media_type
- from backupdb.jobHistory_media jm
- JOIN jobHistory jh on (jm.job_id=jh.job_id AND jm.instance_id=jh.instance_id AND jm.phase_id=jh.phase_id)
- JOIN backupdb.media m on (m.server_id=jm.server_id AND left(m.media_id,40)=left(jm.media_id,40) AND m.last_write_time!=0
- AND m.media_group!=\'VTL\' AND m.barcode not like \'%VTL%\')
- where m.barcode=\'$barcode\' order by m.last_write_time desc limit 1";
- my $sth=$dbh->prepare($sql);
- $sth->execute();
- while(my($host_id,$hostname,$path,$job_id,$unique_id_media,$barcode,$container_id,$last_write_time,$today_date,$media_group,$media_type)=$sth->fetchrow_array()){
- push(@L2_barcodes_last_write_time,"$barcode|$last_write_time");
- print "======== $count/$total_tapes $barcode|$last_write_time =========\n";
- $found=1;
- $count=$count+1;
- }
- if(!$found){
- $count=$count+1;
- push(@notfound_L2_barcodes_smurfdb,$barcode);
- print "$count/$total_tapes $barcode was not found\n";
- print OUTPUT2 "$barcode\n";
- }
- }
- foreach my $line(@L2_barcodes_last_write_time){
- chomp($line);
- my($barcode,$last_write_time)=split(/\|/,$line);
- $db="";
- $user="";
- $password="";
- $dbh = DBI->connect ("DBI:mysql:database=$db:",
- $user,
- $password)
- or die "Can't connect to database: $DBI::err";
- my $sql2="select
- jh.host_id,jh.hostname,jh.path,jm.job_id,
- left(m.media_id,40) as media_id,m.barcode,m.container_id,
- date_format(from_unixtime(m.last_write_time),\'%Y-%m-%d\') as last_write_time,
- date(now()) as today_date,
- m.media_group,m.media_type
- from backupdb.jobHistory_media jm
- JOIN jobHistory jh on (jm.job_id=jh.job_id AND jm.instance_id=jh.instance_id AND jm.phase_id=jh.phase_id)
- JOIN backupdb.media m on (m.server_id=jm.server_id AND left(m.media_id,40)=left(jm.media_id,40) AND m.last_write_time!=0
- AND m.media_group!=\'VTL\' AND m.barcode not like \'%VTL%\')
- where m.barcode=\'$barcode\' and date_format(from_unixtime(m.last_write_time),\'%Y-%m-%d\')=\'$last_write_time\'";
- my $sth2=$dbh->prepare($sql2);
- $sth2->execute();
- print "\/output\/found_L2_barcodes_smurfdb.csv generated...\n";
- while(my($host_id,$hostname,$path,$job_id,$unique_id_media,$barcode,$container_id,$last_write_time,$today_date,$media_group,$media_type)=$sth2->fetchrow_array()){
- push(@found_L2_barcodes_smurfdb,"$host_id|$hostname|$path|$job_id|$unique_id_media|$barcode|$container_id|$last_write_time|$today_date|$media_group|$media_type");
- print "$host_id|$hostname|$path|$job_id|$unique_id_media|$barcode|$container_id|$last_write_time|$today_date|$media_group|$media_type\n";
- print OUTPUT "$host_id,$hostname,$path,$job_id,=\"$unique_id_media\",$barcode,$container_id,$last_write_time,$today_date,$media_group,$media_type\n";
- }
- print "\/output\/notfound_L2_barcodes_smurfdb.txt generated...\n";
- }
- $dbh->disconnect();
- }
- close(OUTPUT);
- close(OUTPUT2);
- ################# convert L2 to L ###################
- sub convert_L2_to_L_barcodes{
- my $notfound_L2=@notfound_L2_barcodes_smurfdb;
- open(OUTPUT,">output\/L_barcodes_media_tapes.txt");
- print "######## check barcode ending with L #########\n";
- print "######## Total tapes: $notfound_L2 #########\n";
- $count=0;
- foreach my $barcode(@notfound_L2_barcodes_smurfdb){
- if($barcode=~/[L2]$/){
- $count=$count+1;
- chop($barcode);
- print "==== $count/$notfound_L2 $barcode ===\n";
- push(@L_barcodes_media_tapes,$barcode);
- print OUTPUT "$barcode\n";
- }else{
- print "This barcode: $barcode does not have L2 at the end\n";
- }
- }
- }
- close(OUTPUT);
- sub check_L_barcodes_last_write_time{
- $db="";
- $user="";
- $password="";
- $dbh = DBI->connect ("DBI:mysql:database=$db:",
- $user,
- $password)
- or die "Can't connect to database: $DBI::err";
- open(OUTPUT,">output\/found_L_barcodes_smurfdb.csv");
- print OUTPUT "host_id,hostname,path,job_id,unique_id_media,barcode,container_id,last_write_time,today_date,media_group,media_type\n";
- open(OUTPUT2,">output\/notfound_L_barcodes_smurfdb.txt");
- print "get L_barcodes_last_write_time...\n";
- my $count=0;
- my $notfound_L2=@notfound_L2_barcodes_smurfdb;
- foreach my $barcode(@L_barcodes_media_tapes){
- $count=$count+1;
- $found=0;
- my $sql="select
- jh.host_id,jh.hostname,jh.path,jm.job_id,
- left(m.media_id,40) as media_id,m.barcode,m.container_id,
- date_format(from_unixtime(m.last_write_time),\'%Y-%m-%d\') as last_write_time,
- date(now()) as today_date,
- m.media_group,m.media_type
- from backupdb.jobHistory_media jm
- JOIN jobHistory jh on (jm.job_id=jh.job_id AND jm.instance_id=jh.instance_id AND jm.phase_id=jh.phase_id)
- JOIN backupdb.media m on (m.server_id=jm.server_id AND left(m.media_id,40)=left(jm.media_id,40) AND m.last_write_time!=0
- AND m.media_group!=\'VTL' AND m.barcode not like \'%VTL%\')
- where m.barcode=\'$barcode\' order by m.last_write_time desc limit 1";
- my $sth=$dbh->prepare($sql);
- $sth->execute();
- while(my($host_id,$hostname,$path,$job_id,$unique_id_media,$barcode,$container_id,$last_write_time,$today_date,$media_group,$media_type)=$sth->fetchrow_array()){
- push(@L_barcodes_last_write_time,"$barcode|$last_write_time");
- print "======== $count/$notfound_L2 $host_id|$hostname|$path|$job_id|$unique_id_media|$barcode|$container_id|$last_write_time|$today_date|$media_group|$media_type =========\n";
- $found=1;
- }
- if(!$found){
- push(@notfound_L_barcodes_smurfdb,$barcode);
- print "$count/$notfound_L2 $barcode was not found\n";
- print OUTPUT2 "$barcode\n";
- }
- }
- foreach my $line(@L_barcodes_last_write_time){
- chomp($line);
- my($barcode,$last_write_time)=split(/\|/,$line);
- my $sql2="select
- jh.host_id,jh.hostname,jh.path,jm.job_id,
- left(m.media_id,40) as media_id,m.barcode,m.container_id,date_format(from_unixtime(m.last_write_time),\'%Y-%m-%d\') as last_write_time,
- date(now()) as today_date,
- m.media_group,m.media_type
- from backupdb.jobHistory_media jm
- JOIN jobHistory jh on (jm.job_id=jh.job_id AND jm.instance_id=jh.instance_id AND jm.phase_id=jh.phase_id)
- JOIN backupdb.media m on (m.server_id=jm.server_id AND left(m.media_id,40)=left(jm.media_id,40) AND m.last_write_time!=0
- AND m.media_group!=\'VTL' AND m.barcode not like \'%VTL%\')
- where m.barcode=\'$barcode\' and date_format(from_unixtime(m.last_write_time),\'%Y-%m-%d\')=\'$last_write_time\'";
- my $sth2=$dbh->prepare($sql2);
- $sth2->execute();
- while(my($host_id,$hostname,$path,$job_id,$unique_id_media,$barcode,$container_id,$last_write_time,$today_date,$media_group,$media_type)=$sth2->fetchrow_array()){
- push(@found_L_barcodes_smurfdb,"$host_id|$hostname|$path|$job_id|$unique_id_media|$barcode|$container_id|$last_write_time|$today_date|$media_group|$media_type");
- print "$host_id|$hostname|$job_id|$path|$unique_id_media|$barcode|$container_id|$last_write_time|$today_date|$media_group|$media_type\n";
- print OUTPUT "$host_id,$hostname,$path,$job_id,=\"$unique_id_media\",$barcode,=\"$container_id\",$last_write_time,$today_date,$media_group,$media_type\n";
- }
- }
- print "\/output\/notfound_L_barcodes_smurfdb.txt generated...\n";
- $dbh->disconnect();
- }
- close(OUTPUT);
- close(OUTPUT2);
- ####### convert to no L2 barcodes ########
- sub convert_to_noL2_barcodes{
- my $notfound_L=@notfound_L_barcodes_smurfdb;
- $count=0;
- foreach my $barcode(@notfound_L_barcodes_smurfdb){
- #print "$count $barcode\n";
- if($barcode=~/[L]$/){
- $count=$count+1;
- chop($barcode);
- print "==== $count/$notfound_L $barcode ===\n";
- push(@noL2_barcodes_media_tapes,$barcode);
- }
- }
- }
- sub check_noL2_barcodes_last_write_time{
- $db="";
- $user="";
- $password="";
- $dbh = DBI->connect ("DBI:mysql:database=$db:",
- $user,
- $password)
- or die "Can't connect to database: $DBI::err";
- open(OUTPUT,">output\/noL2_barcodes_smurfdb.csv");
- print OUTPUT "host_id,hostname,job_id,path,unique_id_media,barcode,container_id,last_write_time,today_date,media_group,media_type\n";
- open(OUTPUT2,">output\/notfound_noL2_barcodes_smurfdb.txt");
- print "get noL2_barcodes_last_write_time...\n";
- my $notfound_noL2=@noL2_barcodes_media_tapes;
- my $count=0;
- foreach my $barcode(@noL2_barcodes_media_tapes){
- $count=$count+1;
- $found=0;
- my $sql="select
- jh.host_id,jh.hostname,jh.path,jm.job_id,
- left(m.media_id,40) as media_id,m.barcode,m.container_id,date_format(from_unixtime(m.last_write_time),\'%Y-%m-%d\') as last_write_time,
- date(now()) as today_date,
- m.media_group,m.media_type
- from backupdb.jobHistory_media jm
- JOIN jobHistory jh on (jm.job_id=jh.job_id AND jm.instance_id=jh.instance_id AND jm.phase_id=jh.phase_id)
- JOIN backupdb.media m on (m.server_id=jm.server_id AND left(m.media_id,40)=left(jm.media_id,40) AND m.last_write_time!=0
- AND m.media_group!=\'VTL' AND m.barcode not like \'%VTL%\')
- where m.barcode=\'$barcode\' order by m.last_write_time desc limit 1";
- my $sth=$dbh->prepare($sql);
- $sth->execute();
- while(my($host_id,$hostname,$path,$job_id,$unique_id_media,$barcode,$container_id,$last_write_time,$today_date,$media_group,$media_type)=$sth->fetchrow_array()){
- push(@noL2_barcodes_last_write_time,"$barcode|$last_write_time");
- print "======== $count/$notfound_noL2 $host_id|$hostname|$path|$job_id|$unique_id_media|$barcode|$container_id|$last_write_time|$today_date|$media_group|$media_type =========\n";
- $found=1;
- }
- if(!$found){
- push(@notfound_noL2_barcodes_smurfdb,$barcode);
- print "$count/$notfound_noL2 $barcode was not found\n";
- print OUTPUT2 "$barcode\n";
- }
- }
- foreach my $line(@noL2_barcodes_last_write_time){
- chomp($line);
- my($barcode,$last_write_time)=split(/\|/,$line);
- my $sql2="select
- jh.host_id,jh.hostname,jh.path,jm.job_id,
- left(m.media_id,40) as media_id,m.barcode,m.container_id,date_format(from_unixtime(m.last_write_time),\'%Y-%m-%d\') as last_write_time,
- date(now()) as today_date,
- m.media_group,m.media_type
- from backupdb.jobHistory_media jm
- JOIN jobHistory jh on (jm.job_id=jh.job_id AND jm.instance_id=jh.instance_id AND jm.phase_id=jh.phase_id)
- JOIN backupdb.media m on (m.server_id=jm.server_id AND left(m.media_id,40)=left(jm.media_id,40) AND m.last_write_time!=0
- AND m.media_group!=\'VTL' AND m.barcode not like \'%VTL%\')
- where m.barcode=\'$barcode\' and date_format(from_unixtime(m.last_write_time),\'%Y-%m-%d\')=\'$last_write_time\'";
- my $sth2=$dbh->prepare($sql2);
- $sth2->execute();
- while(my($host_id,$hostname,$path,$job_id,$unique_id_media,$barcode,$container_id,$last_write_time,$today_date,$media_group,$media_type)=$sth2->fetchrow_array()){
- push(@found_noL2_barcodes_smurfdb,"$host_id|$hostname|$path|$job_id|$unique_id_media|$barcode|$container_id|$last_write_time|$today_date|$media_group|$media_type");
- print "$host_id|$hostname|$path|$job_id|$unique_id_media|$barcode|$container_id|$last_write_time|$today_date|$media_group|$media_type\n";
- print OUTPUT "$host_id,$hostname,$job_id,$path,=\"$unique_id_media\",$barcode,=\"$container_id\",$last_write_time,$today_date,$media_group,$media_type\n";
- }
- }
- print "\/output\/notfound_noL2_barcodes_smurfdb.txt generated...\n";
- }
- close(OUTPUT);
- close(OUTPUT2);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement