I am responsible for couple of *nix servers including Linux, Solaris and HP-UX system. Some time I just wanna find out and open files based upon given date i.e. open file based on date criteria. For example find out all *.pl files accessed on 12-Dec-2004. Since there is not ready to use command exists I wrote script. You can use this script or alias to automate this procedure. You can find out file access date using ls -l command or using stat (display file or filesystem status including access date or time) command. Here is simple logic:
$ ls -l /path/to/file | awk ‘{ print $6 }’
2006-11-22
Once file access date obtained, you can easily compare it using IF command in a shell script. Here is my small script:
#!/bin/bash
DATE="$1"
FILE="$2"
FDATE=$(ls -l $FILE | awk '{ print $6 }')
if [ "$DATE" == "$FDATE" ];then
vi $FILE
fi
You can run or use script as follows:
$ ./script.sh 2006-11-22 myfile.txt
File myfile.txt will be only open using vi text editor, if last access date was 2006-11-22. Above script works but if you want to handle multiple files then you need to modify script as follows:
#!/bin/bash
#date to match
DATE="$1"
# file, it can be wild cards too
FILE="$2"
# List of file to edit
# You can use $FLIST for other purpose too
FLIST=""
for f in $FILE
do
FDATE=$(ls -l $f | awk '{ print $6 }')
if [ "$DATE" == "$FDATE" ];then
FLIST="$FLIST $f"
fi
done
# just display list of files and let the use do
# whatever they wanna do with files
[ "$FLIST" != "" ] && echo $FLIST || echo "Sorry no files found to match $DATE date."
# Uncomment following if you wanna open all files using vi
#vi $FLIST
You can run script as follows:
$ ./script.sh “2004-12-31” “*.pl”
getip.pl reboot.pl dnsupdate.pl
Above script use for loop in shell script to match file one by one, if file date is matched it start to append file names to $FLIST variable. At the end, script displays all matched files. You can also use find command, but I prefer above script as it exactly matches date.
This website is Really good for Linux Beginners as well as Professionals
This really good but I need help.
I have written a backup script as follows
what I want to do now is to reverse the process in case there is a disaster.
i want to be able to identfy the most current folder and use for restore.
can you help?