Moving file from one dir to Another with Given Qualifier


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Moving file from one dir to Another with Given Qualifier
# 1  
Old 12-16-2009
Moving file from one dir to Another with Given Qualifier

Hi,

I want to Move files from one dir to another dir on same mount point.

The source dir may contain subdir or files within it.
Search the files or subfolder which is older then a given datetime .

Move the file recursively and after each successful move of file make an entry to log file.

I really Appreciate your help!
# 2  
Old 12-16-2009
Does the script I use help?:

You may replace the secureMove function with a simple move statement (secureMove increments a counter in the filename should the same file exist in the destination folder already).

Code:
#!/usr/bin/bash
#Version: v0.2
#Date:    21th of October, 2009
LOG=1
DEBUG=0
WARN=1
LOGDIR="/opt/logs"
DESTDIR="/export/home/li"
debug()
{
    if [ "$DEBUG" = 1 ] ; then
        /usr/bin/logger -p local7.debug "FileMove:$1"
    fi
}
log()
{
    if [ "$LOG" = 1 ] ; then
        /usr/bin/logger -p local7.notice "FileMove:$1"
    fi
}
warn()
{
    if [ "$WARN" = 1 ] ; then
        /usr/bin/logger -p local7.warn "FileMove:$1"
    fi
}


echo

detect_os()
{
    OS=`uname`
    case $OS in
       Linux) debug "Detecting OS... Linux";;
       SunOS) debug "Detecting OS... Solaris";;
       *) log "Detecting OS... Unknown OS! Only Linux and Solaris are supported so far. Exiting..."; exit 0;;
    esac
}

define_procs()
{
    case $OS in
       Linux)
                ECHO=/bin/echo
                CAT=/bin/cat
                EGREP=/bin/egrep
                GREP=/bin/grep
                SED=/bin/sed
                TR=/usr/bin/tr
                AWK=/bin/awk
                FIND=/usr/bin/find
                XARGS=/usr/bin/xargs
                BC=/usr/bin/bc
                WC=/usr/bin/wc
                ;;
       SunOS)
                ECHO=/usr/bin/echo
                CAT=/usr/bin/cat
                EGREP=/usr/bin/egrep
                GREP=/usr/bin/grep
                SED=/usr/bin/sed
                TR=/usr/bin/tr
                CHOWN=/usr/bin/chown
                MV=/usr/bin/mv
                if [ -f /usr/xpg4/bin/awk ]
                then
                    AWK=/usr/xpg4/bin/awk
                else
                    AWK=/usr/bin/awk
                fi
                FIND=/usr/bin/find
                XARGS=/usr/bin/xargs
                BC=/usr/bin/bc
                WC=/usr/bin/wc
                EXPR=/usr/bin/expr
                CP=/usr/bin/cp
                ;;
    esac
}

secureMove(){
    FILE="$1"
    DESTFILE=$FILE
    COUNTER=`$ECHO $FILE | sed -e 's/\.log$//;s/.*-//g'`

    debug "Current counter value is $COUNTER"

    while [ -f "${DESTDIR}/${DESTFILE}" -o -f "${DESTDIR}/retrieved.${DESTFILE}" ]
    do
        debug "File ${DESTDIR}/(retrieved.)${DESTFILE} exists already. Incrementing counter..."
        COUNTER=`$EXPR $COUNTER + 1`;
        DESTFILE=`$ECHO $DESTFILE | $SED -e "s/[^-][0-9]*\.log$/${COUNTER}\.log/"`
        debug "...new filename $DESTFILE"
    done

   $CHOWN li:li "${FILE}"
   $MV "${FILE}" "${DESTDIR}/${DESTFILE}"
    if [ $? = 0 ]; then
        log "$FILE moved SUCCESSfully to ${DESTDIR}/${DESTFILE}";
    else
        warn "FAILED to move file $FILE!!";
    fi
}

processFile(){
    FILE="$1"
    # make sure file exist and readable
    if [ ! -f $FILE ]; then
        warn " $FILE does not exists"
        exit 1
    elif [ ! -r $FILE ]; then
        warn " Unable to read $FILE"
        exit 2
    fi
    secureMove $FILE
}

processDir(){
    DIR=$1
    filecount=`$FIND ${DIR} -name "*ACCOUNTING*\-*\-*.log" -print | $WC -l | $TR -s '[:space:]' -`
    log "moving ${filecount} accounting files from ${DIR} to ${DESTDIR}"
    cd $LOGDIR
    for FILE in `/usr/bin/ls -1 *ACCOUNTING*\-*\-*.log`
    do
        processFile $FILE
    done
}

detect_os
define_procs
processDir $LOGDIR

# 3  
Old 12-16-2009
Thanks for Prompt reply

1st of all thanks for your prompt reply.I am new to this scripting world and for me the script looks complex.
sorry about that.

so I have broken my requirement into part :

if you or someone can help me :

1.find and list out all files older then some predefined value within subdir and dir .

e.g:

Below are the files which met the condn
/usr/home/dir1
/subdir/sbdirfile1.txt
/sbdirfile2.txt
/sbdirfile3.txt

/ dirfile1.txt
/ dirfile2.txt
/ dirfile3.txt

now log1.txt should display

/usr/home/dir1/subdir/sbdirfile1.txt
/usr/home/dir1/subdir/sbdirfile2.txt
/usr/home/dir1/subdir/sbdirfile3.txt
/usr/home/dir1 / dirfile1.txt
/usr/home/dir1 / dirfile2.txt
/usr/home/dir1 / dirfile3.txt

Thanking you all in advance

Hope i am clear this time
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Text qualifier issue causing data alignment problem

Hello Everyone, I have a csv file with text qualifier as "" and data similar to below: "1","abc","address1","US" "2","def","address1 "characters in double-quote" address2","IND" "3","ghi","address1","UK" In above example, for record 2, we have an issue as in column3 contains double... (2 Replies)
Discussion started by: AnkitSenghani
2 Replies

2. Shell Programming and Scripting

Create file Dir and Sub Dir same time

Hi Guys , I want create files Dire and Sub Dire. as same time using variable. EX: x1="/hk/Pt/put/NC/R1.txt" x2="/hk/pt/Put/Ot/NC/RN.txt" And i want delete all after done with my script. Thanks (2 Replies)
Discussion started by: pareshkp
2 Replies

3. Shell Programming and Scripting

Problem with moving a file to another dir.

Hi frnds The following is the code #!/bin/ksh ############################################################## # # # Created by eDB Dev - 27-May-2011 # # ... (1 Reply)
Discussion started by: balesh
1 Replies

4. UNIX for Dummies Questions & Answers

How to list all files in dir and sub-dir's recursively along with file size?

I am very new to unix as well as shell scripting. I have to write a script for the following requirement. In have to list all the files in directory and its sub directories along with file path and size of the file Please help me in this regard and many thanks in advance. (3 Replies)
Discussion started by: nmakkena
3 Replies

5. Shell Programming and Scripting

moving files from a dir in one machine to a dir in another machines

Hi, I am a unix newbie.I need to write a shell script to move my oracle READ WRITE datafiles from one serevr to another. I need to move it from /u01/oradata/W1KK/.. to /u01/oradata/W2KK, /u02/oradata/W1KK/.. to /u02/oradata/W2KK. That is, I actaully am moving my datafiles from one database to... (2 Replies)
Discussion started by: mathews
2 Replies

6. UNIX for Dummies Questions & Answers

Copying dir (and sub dir) file names from ftp server to txt file in diff server

Hey all, i want to copy only the file names from an ftp server (directory and all sub directory) to a text file in another server (non ftp), i.e. i want to recursively move through directories and copy only the names to a text file. any help is appreciated...thank you in advance (1 Reply)
Discussion started by: deking
1 Replies

7. Shell Programming and Scripting

moving dir subdir and files

I have created a directory structure and under the directory subdirectories and files are there.I need to move the entire thing to another path.How can i write a script to do that. currently the path of files is as below : /data1/serial/mcycle/archive : under this path differnt sub dir exist ... (6 Replies)
Discussion started by: dr46014
6 Replies

8. Shell Programming and Scripting

Moving file(s) from dir to dir

Hi, I am fairly new to writing scripts. I am trying to write a script that moves either One or All of the files from one directory to another. I know how to make the actual command to do it, but i don't quite know how to add operators to it, ie -i or -a. I want -i to move one file from... (4 Replies)
Discussion started by: SirJoeh
4 Replies

9. Shell Programming and Scripting

copying a file from one dir to another dir

hi i have a script compareFiles() { find /tmp/Satya -type f | \ while read filename1 do echo "----------------------------------------$filename1" find /tmp/Satya -type f | \ while read filename2 do if diff $filename1 $filename2 then echo "Both files... (3 Replies)
Discussion started by: Satyak
3 Replies

10. Shell Programming and Scripting

full path of a file situated either in parent's dir. or parent's parent dir. so on...

hi experts(novice people can stay away as it is no child's game), i am developing a script which works like recycle bin of windows. the problem i am facing is that when ever i am trying to delete a file which is situated in parent directory or parent's parent directory i am unable to... (1 Reply)
Discussion started by: yahoo!
1 Replies
Login or Register to Ask a Question