Hi team I found this script online and made some changes to it to convert Epoch time-stamped history files into human-readable format, but I keep getting this annoying "day out of range error" Here's the script I'm using:
#!/bin/bash # YYYY MM DD HH MM SS # perl autosplits the string and uses timelocal to return # the number of seconds from the Epoch # No error checking! function seconds_from_epoch { echo $*| perl -MTime::Local -ane ' my $epochseconds = timegm($F[5], $F[4], $F[3], $F[2], $F[1], $F[0]); print "$epochseconds\n"; ' } # parse file s32adm_bash_history date and time set -- $(ls -l s32adm_bash_history) fdate=$7 ftime=$6 # parse the year, month, and day set -- $(IFS="-"; echo $fdate) fyear=$1 fmonth=$2 fday=$3 # parse the hours and minutes set -- $(IFS=":"; echo $ftime) fhour=$4 fmin=$5 totsecs=$(seconds_from_epoch $fmin $fhour $fday $fmonth $fyear ) echo $totsecs
and this is the error:
[root@H99A100 user_history]# ./timeperl Day '' out of range 1..31 at -e line 2
So what am I doing wrong? Is it the timegm? I changed it to Localtime and I get the same error Please help! I've been cracking it for days Rgds
In reply to Epoch time conversion script by hedkandi
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |