Sponsored Content
Top Forums Shell Programming and Scripting [problem] making a backup files Post 302297315 by dariyoosh on Friday 13th of March 2009 05:20:10 AM
Old 03-13-2009
Quote:
Originally Posted by chazij
Hi guys,

I'm a little stuck on this problem, I've tried googling it and some trial and error but can't seem to get it working.

Basically I need the script to:

1) create a directory called "mybackups", if it doesn't exist
2) go through all the .sh files in the current directory, and copy them into the
"mybackups" directory.
3) add the date to the end of each filename.

This is what I've got so far:

Code:
#!/bin/bash

if [test -e mybackups]
then
    mkdir mybackups
    echo "Created backup directory"
else
    echo "Backup directory found"
fi

for file in (man ls)
do
    if[${f: -3} == '.sh']
    then
        cp $file $file|date "+%Y%m%d"
    fi
done

I think the problem is with the cp $file $file|date "+%Y%m%d" line.
But any help would be awesome, I'm a complete newby to this :s

Hello there,

Here is a KornShell script, that does the job (if you change the first line with
#!/bin/bash it also works but will give a warning message).

Code:
#!/bin/ksh

backup_directory="mybackups"

if [[ -a $backup_directory ]]
then
    if [[ ! -d $backup_directory ]]
    then
        print -u2 "error: $backup_directory is not a directory"
        exit 1
    fi
else
    mkdir $backup_directory
    print "The directory $backup_directory was created successfully."
fi

for iterator in *
do
    if [[ -f $iterator ]]
    then
        current_filename=$iterator
        if [[ $current_filename == *.sh ]]
        then
            cp $iterator $backup_directory
            mv "$backup_directory/$current_filename" "$backup_directory/$current_filename-$(date +%m-%d-%y)"
        fi
    fi
done

I hope this can help,

Regards,
Smilie
 

9 More Discussions You Might Find Interesting

1. Programming

DDD making problem

Hi Everybody, I am trying to make the ddd-3.3.9 debugger. I installed all dependencies. this is what i get: # make Making all in themes make: Entering directory `/space/atoulan/ddd-3.3.9/themes' make: Nothing to be done for `all'. make: Leaving directory... (0 Replies)
Discussion started by: azazel11998
0 Replies

2. Shell Programming and Scripting

Problem in making shell script

Dear all Dear Brother I am bit new to programming or shell scripting. I have given one shell script which is regarding combining all the 240 or less files in a particular folderwhich is related to one hour of the day. There will be 24 these kind of folders related to a day . It means there... (4 Replies)
Discussion started by: girish.batra
4 Replies

3. Shell Programming and Scripting

problem in making sftp script

Dear all I am bit new to shell scripting . I am implemented autossh between two sun solaris machines , so that when I use sftp it will not ask for the password. Now I need to make shell script in which I have to transfer files from one server to another server automatically through root... (8 Replies)
Discussion started by: girish.batra
8 Replies

4. Shell Programming and Scripting

Problem in making itration

Hi, I have a file which keeps on appending the data continuously, i that i am looking for a particular pattern, if i dont find that pattern i want to wait for 30 seconds to check it again. can we use it like this ----------------------------- until do cat $line |... (1 Reply)
Discussion started by: Prateek007
1 Replies

5. Solaris

Making backup with ufsdump to remote mounted filesystems

Hi Unix members. I am trying to make a backup to remote mounted filesystems : fileraseing:/vol/oracliente_revap01 10G 1.3G 8.7G 13% /orarev_ap01 fileraseing:/vol/bobje 10G 5.9G 4.1G 60% /bobje But I am receiving the follow message when use the ufsdump command: :$PWD>ufsdump 0fu... (8 Replies)
Discussion started by: aggadtech08
8 Replies

6. UNIX for Dummies Questions & Answers

Making backup to .doc file .... sh

im tring to make backup to the files end with "doc" extension but the code give me error ... what is the problem!!!! #! /bin/sh if then for name in `ls *.DOC` do kk= $(printf "%s_temp" $name) cp $name $kk done else echo "error" (9 Replies)
Discussion started by: maga6610
9 Replies

7. Shell Programming and Scripting

Problem in making a list with awk

Hi bodies,I am doing a list from a .txt file with awk commands but something is wrong. The .txt file looks like: 32782 28 18 32783 02 18 32784 01 18 32785 29 18 32786 25 23 32787 25 18 32788 00 18 32789 25 26 32790 02 23 32791 29 26 ... (2 Replies)
Discussion started by: Behrouzx77
2 Replies

8. Solaris

Making HDD backup in sun Solaris system

Hello to all, I have Fujitsu Celzius M470 workstation which has Sun solaris system installed and want to make a complete backup of the hard drive. The existing HDD is SATA II, 500 GB. I don't have much experience working with SUN solaris systems (not at all) but have some experience with... (5 Replies)
Discussion started by: Mick
5 Replies

9. Programming

UNIX Network Programming making files problem

I have started reading the book Unix Network Programming, Volume 1: The Sockets Networking API. I downloaded all the source code and the readme says I must make the files. zuro@zuro:~/book/unpv12e$ cd lib zuro@zuro:~/book/unpv12e/lib$ make gcc -g -O2 -D_REENTRANT -Wall -c -o... (5 Replies)
Discussion started by: xuro
5 Replies
WHICH(1)						      General Commands Manual							  WHICH(1)

NAME
which - shows the full path of (shell) commands. SYNOPSIS
which [options] [--] programname [...] DESCRIPTION
Which takes one or more arguments. For each of its arguments it prints to stdout the full path of the executables that would have been exe- cuted when this argument had been entered at the shell prompt. It does this by searching for an executable or script in the directories listed in the environment variable PATH using the same algorithm as bash(1). This man page is generated from the file which.texinfo. OPTIONS
--all, -a Print all matching executables in PATH, not just the first. --read-alias, -i Read aliases from stdin, reporting matching ones on stdout. This is useful in combination with using an alias for which itself. For example alias which='alias | which -i'. --skip-alias Ignore option `--read-alias', if any. This is useful to explicity search for normal binaries, while using the `--read-alias' option in an alias or function for which. --read-functions Read shell function definitions from stdin, reporting matching ones on stdout. This is useful in combination with using a shell func- tion for which itself. For example: which() { declare -f | which --read-functions $@ } export -f which --skip-functions Ignore option `--read-functions', if any. This is useful to explicity search for normal binaries, while using the `--read-functions' option in an alias or function for which. --skip-dot Skip directories in PATH that start with a dot. --skip-tilde Skip directories in PATH that start with a tilde and executables which reside in the HOME directory. --show-dot If a directory in PATH starts with a dot and a matching executable was found for that path, then print "./programname" rather than the full path. --show-tilde Output a tilde when a directory matches the HOME directory. This option is ignored when which is invoked as root. --tty-only Stop processing options on the right if not on tty. --version,-v,-V Print version information on standard output then exit successfully. --help Print usage information on standard output then exit successfully. RETURN VALUE
Which returns the number of failed arguments, or -1 when no `programname' was given. EXAMPLE
The recommended way to use this utility is by adding an alias (C shell) or shell function (Bourne shell) for which like the following: [ba]sh: which () { (alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@ } export -f which [t]csh: alias which 'alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' This will print the readable ~/ and ./ when starting which from your prompt, while still printing the full path when used from a script: > which q2 ~/bin/q2 > echo `which q2` /home/carlo/bin/q2 BUGS
The HOME directory is determined by looking for the HOME environment variable, which aborts when this variable doesn't exist. Which will consider two equivalent directories to be different when one of them contains a path with a symbolic link. AUTHOR
Carlo Wood <carlo@gnu.org> SEE ALSO
bash(1) WHICH(1)
All times are GMT -4. The time now is 11:15 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy