because i want to be notified straight after the command the return code, if its 0 continue if its not 0 email me straight away, i dont want to print the values and right at the end get an email with any command its failed i want to know straight away
do you think this isn't good practice then?
... ... ...
also the last if/else statement under the else im going to print/echo the values to a file so i have a hard copy aswell as email
... ... ...
cheers
rob
If you want to know right away that an error occurred while running your script, watch your script run. Using e-mail to be notified of time-critical events is strange. (There is no guarantee that an e-mail message will be delivered in any particular bounded time.) And the messages you're sending indicate that something went wrong, but you don't include the exit code and you don't include any diagnostic messages produced by any failing commands; so you know something went wrong, but you have no idea what the failing command told you when it failed. So, if anything goes wrong, you are throwing away most of the information that would help you figure out what needs to be fixed unless you are watching the script run (in which case, the e-mail gives you late notice of what you already know). And, assuming that most of your archiving activities complete successfully, you also get an urgent e-mail saying that each archival succeeded. After you've run this a few times, will you really notice an e-mail saying a project archival failed when you're used to seeing an e-mail saying a project archival succeeded?
With all of the things a sys admin has to do every day, is failing to archive a completed project high on the list of things that have to be addressed immediately?
The code I suggested gave you a single e-mail with all of the diagnostics produced by any failing commands as well as your failure and success notes. Your code gives you one e-mail containing a single line failure or success note for each attempted archival (throwing away any diagnostics produced by failing commands).
Obviously, you can do what you want to do here. If I were administering attempts to archive projects, I know which I would prefer.
- Don
PS You might also consider consolidating your remove commands:
into the single command:
If you successfully tar a project's files and successfully rsync that archive to your archive server, is there any reason not to try to remove the project's files even if the attempt to remove the tar archive failed?
Hi.
I'm trying to copy multiple folders from the remote machine to the local machine. I wrote a batch file to run an ftp window.
The problem I am having is that the only command to copy files is mget *, and this copies only files, not folders.
For example, ftp ts555
cd ts555/test
' test... (5 Replies)
I have written a shell script to perform backups using tar, rsync and optionally utilise lvm snapshots. The script is not finished but is in a working state and comments/descriptions are poor.
I would greatly appreciate any criticism and suggestions of the script to help improve my own learning... (0 Replies)
I have in directory /media/AUDIO/WAVE many .mp3 files with names like:
my filename_01of02.mp3
my filename_02of02.mp3
Your File_01of06.mp3
Your File_02of06.mp3
etc....
In the same directory, /media/AUDIO/WAVE, I have many folders with names like
9780743579490
9780743579491
etc..
Inside... (7 Replies)
I have 1000's of directories which is named as numbers. Each directory contains multiple files. Each of these directories have a file named "att". I need to rename all the att files by adding the directory name followed by "_" then att for each of the directories.
Directories
120
att... (2 Replies)
Hi all,
I have a tar file and inside that tar file is a folder with additional tar.gz files. What I want to do is look inside the first tar file and then find the second tar file I'm looking for, look inside that tar.gz file to find a certain directory. I'm encountering issues by trying to... (1 Reply)
I would like to confirm my file.tar is been tar-ed correctly before I remove them. But I have very limited disc space to untar it.
Can I just do the listing instead of actual extract it? Can I say confirm folder integrity if the listing is sucessful without problem?
tar tvf file1.tar
... (1 Reply)
Hi All,
I have to requirement to write a shell script to move file from one folder (A) to another five folder (B,C,D,E,F) and destination folder should be blank. In not blank just skip.
This script will run as a scheduler every 2 minutes. It will check number of files in folder A and move 1 to... (9 Replies)
Good day, everyone!
I'm very new to bash scripting. Our teacher gave us a task to create a script that basically does the same job the 'du' command does, with the difference that 'du' command gives an output in the form of
<size> <folder name>and what we need is
<folder name> <size>As for... (1 Reply)
1. The problem statement, all variables and given/known data:
The task is to create a script that would reproduce the output of 'du' command, but in a different way: what 'du' does is:
<size> <folder name>and what is needed is
<folder name> <size>We need to show only 10 folders which are the... (3 Replies)
HI Guys,
I have some 8 files with different name and extensions. I need to check if they are present in a specific folder or not and also want that script to show me which all are not present. I can write if condition for each file but from a developer perspective , i feel that is not a good... (3 Replies)
Discussion started by: shankarpanda003
3 Replies
LEARN ABOUT REDHAT
tar
TAR(1) General Commands Manual TAR(1)NAME
tar - The GNU version of the tar archiving utility
SYNOPSIS
tar [ - ] A --catenate --concatenate | c --create | d --diff --compare | r --append | t --list | u --update | x -extract --get [ --atime-
preserve ] [ -b, --block-size N ] [ -B, --read-full-blocks ] [ -C, --directory DIR ] [ --checkpoint ] [ -f, --file [HOSTNAME:]F ] [
--force-local ] [ -F, --info-script F --new-volume-script F ] [ -G, --incremental ] [ -g, --listed-incremental F ] [ -h, --dereference ]
[ -i, --ignore-zeros ] [ -j, -I, --bzip ] [ --ignore-failed-read ] [ -k, --keep-old-files ] [ -K, --starting-file F ] [ -l, --one-file-sys-
tem ] [ -L, --tape-length N ] [ -m, --modification-time ] [ -M, --multi-volume ] [ -N, --after-date DATE, --newer DATE ] [ -o, --old-ar-
chive, --portability ] [ -O, --to-stdout ] [ -p, --same-permissions, --preserve-permissions ] [ -P, --absolute-paths ] [ --preserve ]
[ -R, --record-number ] [ --remove-files ] [ -s, --same-order, --preserve-order ] [ --same-owner ] [ -S, --sparse ] [ -T, --files-from=F ]
[ --null ] [ --totals ] [ -v, --verbose ] [ -V, --label NAME ] [ --version ] [ -w, --interactive, --confirmation ] [ -W, --verify
] [ --exclude FILE ] [ -X, --exclude-from FILE ] [ -Z, --compress, --uncompress ] [ -z, --gzip, --ungzip ] [ --use-compress-program
PROG ] [ --block-compress ] [ -[0-7][lmh] ]
filename1 [ filename2, ... filenameN ]
directory1 [ directory2, ...directoryN ]
DESCRIPTION
This manual page documents the GNU version of tar , an archiving program designed to store and extract files from an archive file known as
a tarfile. A tarfile may be made on a tape drive, however, it is also common to write a tarfile to a normal file. The first argument to
tar must be one of the options: Acdrtux, followed by any optional functions. The final arguments to tar are the names of the files or
directories which should be archived. The use of a directory name always implies that the subdirectories below should be included in the
archive.
FUNCTION LETTERS
One of the following options must be used:
-A, --catenate, --concatenate
append tar files to an archive
-c, --create
create a new archive
-d, --diff, --compare
find differences between archive and file system
--delete
delete from the archive (not for use on mag tapes!)
-r, --append
append files to the end of an archive
-t, --list
list the contents of an archive
-u, --update
only append files that are newer than copy in archive
-x, --extract, --get
extract files from an archive
OTHER OPTIONS --atime-preserve
don't change access times on dumped files
-b, --block-size N
block size of Nx512 bytes (default N=20)
-B, --read-full-blocks
reblock as we read (for reading 4.2BSD pipes)
-C, --directory DIR
change to directory DIR
--checkpoint
print directory names while reading the archive
-f, --file [HOSTNAME:]F
use archive file or device F (default /dev/rmt0)
--force-local
archive file is local even if has a colon
-F, --info-script F --new-volume-script F
run script at end of each tape (implies -M)
-G, --incremental
create/list/extract old GNU-format incremental backup
-g, --listed-incremental F
create/list/extract new GNU-format incremental backup
-h, --dereference
don't dump symlinks; dump the files they point to
-i, --ignore-zeros
ignore blocks of zeros in archive (normally mean EOF)
-j, -I, --bzip
filter the archive through bzip2. Note: -I is deprecated and may get a different meaning in the near future.
--ignore-failed-read
don't exit with non-zero status on unreadable files
-k, --keep-old-files
keep existing files; don't overwrite them from archive
-K, --starting-file F
begin at file F in the archive
-l, --one-file-system
stay in local file system when creating an archive
-L, --tape-length N
change tapes after writing N*1024 bytes
-m, --modification-time
don't extract file modified time
-M, --multi-volume
create/list/extract multi-volume archive
-N, --after-date DATE, --newer DATE
only store files newer than DATE
-o, --old-archive, --portability
write a V7 format archive, rather than ANSI format
-O, --to-stdout
extract files to standard output
-p, --same-permissions, --preserve-permissions
extract all protection information
-P, --absolute-paths
don't strip leading `/'s from file names
--preserve
like -p -s
-R, --record-number
show record number within archive with each message
--remove-files
remove files after adding them to the archive
-s, --same-order, --preserve-order
list of names to extract is sorted to match archive
--same-owner
create extracted files with the same ownership
-S, --sparse
handle sparse files efficiently
-T, --files-from=F
get names to extract or create from file F
--null
-T reads null-terminated names, disable -C
--totals
print total bytes written with --create
-v, --verbose
verbosely list files processed
-V, --label NAME
create archive with volume name NAME
--version
print tar program version number
-w, --interactive, --confirmation
ask for confirmation for every action
-W, --verify
attempt to verify the archive after writing it
--exclude FILE
exclude file FILE
-X, --exclude-from FILE
exclude files listed in FILE
-Z, --compress, --uncompress
filter the archive through compress
-z, --gzip, --ungzip
filter the archive through gzip
--use-compress-program PROG
filter the archive through PROG (which must accept -d)
30 October 2000 TAR(1)