Perl Script to check file date and size


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Perl Script to check file date and size
# 15  
Old 04-12-2010
I think tyler d is right - your file is probably munged. Did you use a windows editor to create your file? If you did, then look into dos2ux (or sometimes called dos2unix), this converts windows carriage control to unix carriage control. So the unix perl interpreter can run it without hysteria. The only other likelihood is that you have somehow installed a small subset of a standard perl installation.

I ran the code on a Solaris box with perl 5.9 -- it does run. The code is not really ready for production use, it is just an example. It needs parameter checking and other error trapping to be reasonable.

I would continue to recommend, that if this is a job-related project - use shell instead.
# 16  
Old 04-20-2010
Hi guys, i did the dos2unix, and that helped. However I get different types of errors now:

Code:
-bash-3.2$ dos2unix file_check.pl

dos2unix: converting file file_check.pl to UNIX format ...

-bash-3.2$ ./file_check.pl

./file_check.pl: line 3: sub: command not found

./file_check.pl: line 5: =: command not found

./file_check.pl: line 6: -=: command not found

./file_check.pl: line 7: =: command not found

./file_check.pl: line 9: syntax error near unexpected token `('

./file_check.pl: line 9: `      $mtime = (stat("$_[0]"))[9] || die "cannot stat file $!";  '

# 17  
Old 04-20-2010
What's the output of the following command ?

Code:
cat -veT file_check.pl

tyler_durden
# 18  
Old 04-20-2010
Hi.. this is what i get:

Code:
-bash-3.2$ cat -veT file_check.pl

$

#!/usr/local/bin/perl$

sub ExampleFiles{$

$

      $today = time;$

      $today -= $today % 86400;  $

      $return_value = 0;$

                                    #  $

      $mtime = (stat("$_[0]"))[9] || die "cannot stat file $!";  $

      $size =  (stat("$_[0]"))[7];  # size in bytes$

      $ok = "not ok";$

      $

      if( $size > 0 && $mtime >= $today )$

      {$

            $ok = "ok"; $

            $return_value = 1;           $

      }$

      print "$_[0] is $ok\n";$

      return $return_value;$

}$

$

$found = 0;$

opendir (DIRHNDL, "/loc1/dir3") ||  die "Cannot open directory $!";$

@filelist = readdir (DIRHNDL);$

closedir (DIRHNDL);$

$

foreach $filename ( @filelist )$

{$

   if ($filename =~ /txt$/)$

   {$

     $found |= ExampleFiles $filename;$

   }$

}$

print "return status = $found\n";$

$

exit 0;$

$

$

$

-bash-3.

# 19  
Old 04-20-2010
That looks ok.
What's the output of the following ?

Code:
perl -v
perl -V

tyler_durden
# 20  
Old 04-20-2010
this is what i get:

Code:


-bash-3.2$ perl -v



This is perl, v5.8.7 built for i686-linux



Copyright 1987-2005, Larry Wall



Perl may be copied only under the terms of either the Artistic License or the

GNU General Public License, which may be found in the Perl 5 source kit.



Complete documentation for Perl, including FAQ lists, should be found on

this system using `man perl' or `perldoc perl'.  If you have access to the

Internet, point your browser at http://www.perl.org/, the Perl Home Page.



-bash-3.2$ perl -V

Summary of my perl5 (revision 5 version 8 subversion 7) configuration:

  Platform:

    osname=linux, osvers=2.6.9-78.0.13.el, archname=i686-linux

    uname='linux dopes.secrea.com 2.6.9-78.0.13.el #1 wed jan 7 17:31:05 est 2009 i686 i686 i386 gnulinux '

    config_args='-ds -e -Dprefix=/usr/local -Dinstallprefix=/usr/local/encap/perl-5.8.7'

    hint=recommended, useposix=true, d_sigaction=define

    usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef

    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef

    use64bitint=undef use64bitall=undef uselongdouble=undef

    usemymalloc=n, bincompat5005=undef

  Compiler:

    cc='cc', ccflags ='-fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',

    optimize='-O2',

    cppflags='-fno-strict-aliasing -pipe -I/usr/local/include'

    ccversion='', gccversion='3.4.6 20060404 (Red Hat 3.4.6-10)', gccosandvers=''

    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234

    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12

    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8

    alignbytes=4, prototype=define

  Linker and Libraries:

    ld='cc', ldflags =' -L/usr/local/lib'

    libpth=/usr/local/lib /lib /usr/lib

    libs=-lnsl -ldb -ldl -lm -lcrypt -lutil -lc

    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc

    libc=/lib/libc-2.3.4.so, so=so, useshrplib=false, libperl=libperl.a

    gnulibc_version='2.3.4'

  Dynamic Linking:

    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'

    cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'





Characteristics of this binary (from libperl):

  Compile-time options: USE_LARGE_FILES

  Built under linux

  Compiled at May 27 2009 12:11:46

  @INC:

    /usr/local/lib/perl5/5.8.7/i686-linux

    /usr/local/lib/perl5/5.8.7

    /usr/local/lib/perl5/site_perl/5.8.7/i686-linux

    /usr/local/lib/perl5/site_perl/5.8.7

    /usr/local/lib/perl5/site_perl

    .

-bash-3.2$

# 21  
Old 04-20-2010
That looks ok as well.

What's the output of the following command ?

Code:
od -bc file_check.pl

tyler_durden
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Script to determine Date,TotalFile,total size of file based on date

I have file listed like below -rw-r--r--+ 1 test test 17M Nov 26 14:43 test1.gz -rw-r--r--+ 1 test test 0 Nov 26 14:44 test2.gz -rw-r--r--+ 1 test test 0 Nov 27 10:41 test3.gz -rw-r--r--+ 1 test test 244K Nov 27 10:41 test4.gz -rw-r--r--+ 1 test test 17M Nov 27 10:41 test5.gz I... (5 Replies)
Discussion started by: krish2014
5 Replies

2. UNIX for Dummies Questions & Answers

Script to check for file size and then sftp

noted down (44 Replies)
Discussion started by: mirwasim
44 Replies

3. Shell Programming and Scripting

Perl code to check date and check files in particular dir

Hi Experts, I am checking how to get day in Perl. If it is “Monday” I need to process…below is the pseudo code. Can you please prove the code for below condition. if (today=="Monday" ) { while (current_time LESS THAN 9:01 AM) ... (1 Reply)
Discussion started by: ajaypatil_am
1 Replies

4. Shell Programming and Scripting

Please help I want script to check filename, size and date in specify path.

Please help, I want script to check filename, size and date in specify path. I want output as: DATE: YYYYMMDD HH:MM ------------------------------------------------ fileA,filesize,yyyy mm dd HH:MM fileA,filesize,yyyy mm dd HH:MM fileA,filesize,yyyy mm dd HH:MM fileA,filesize,yyyy mm dd... (1 Reply)
Discussion started by: akeji
1 Replies

5. Shell Programming and Scripting

Script to check file system size

Dears, the output of this command df -h | tr -s ' ' | cut -f5 -d' ' is capacity 24% 0% 0% 0% 0% 1% 0% 24% 24% 0% 93% 1% (4 Replies)
Discussion started by: xxmasrawy
4 Replies

6. Windows & DOS: Issues & Discussions

Check the file size using Batch script in windows

Hi, I need to check the file size using a batch script. Pls advise. (0 Replies)
Discussion started by: krackjack
0 Replies

7. Shell Programming and Scripting

shell script to check file size greater than 50M

Hi All, OS:AIX 64 bits using korn shell. Requirement: shell script to check file size greater than 50M and send mail alert. Thanks for your time! Regards, (3 Replies)
Discussion started by: a1_win
3 Replies

8. Shell Programming and Scripting

unix script to check whether particular file exists and to find its size

I want to find the size of particular file exists in a particular directory and i wnt to zip it. In the below mentioned code it should check the MQ.log in the particular directory.Please correct my code so that it will check for particular MQ.log but i could not able to check whether the... (9 Replies)
Discussion started by: Balachandar
9 Replies

9. Shell Programming and Scripting

Perl FTP - check file size

The FTP perl module does not have any function which checks if the file downloaded is of size 0. Is there any way in perl to check while getting the files through FTP? Sometimes, there might be a problem with FTP and the downloaded file maybe of size 0. Hence, I would like to FTP that file... (1 Reply)
Discussion started by: rahulrathod
1 Replies

10. UNIX for Dummies Questions & Answers

file date check script

I am creating a KSH script and need to check the filedate against the system date. I can get the sys date w. date command, and I was able to get the filedate w. the awk command but when I compare them w. an if condition statement I get syntax error. Not sure what's wrong, and other suggestions on... (4 Replies)
Discussion started by: jaxconsultant
4 Replies
Login or Register to Ask a Question