Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Mar 2003 15:09:47 -0500
From:      Edmond Baroud <SoHo@admin.fido.ca>
To:        Tom Parquette <tparquet@twcny.rr.com>
Cc:        freebsd-questions@FreeBSD.ORG
Subject:   Re: Shell scripting questions
Message-ID:  <20030317150947.6570b8a7.SoHo@admin.fido.ca>
In-Reply-To: <3E762419.3040900@twcny.rr.com>
References:  <3E762419.3040900@twcny.rr.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 17 Mar 2003 14:38:01 -0500
Tom Parquette <tparquet@twcny.rr.com> wrote:

> I've been looking through some basic shell books, and some online 
> resources, that I have but I'm not finding the answer.
> Or maybe I just don't recognize the answer when I see it...
> 
> I'm building a schell script that will backup my systems to CD-ROM.  Or 
> DVD when I can talk my wife into a burner.  :-)
> 
> I'm stuck on two items:
> 1) Since my tar files CAN exceed the capacity of a CD-ROM, I want to 
> check in the script if I have to call split.
> The closest I can come to determining the size of the output file from 
> tar (e.g.ad0s1a.tgz) is: file_size=`du -k /tmp/ad0s1a.tgz`.
> The problem I have is, while this gives me the result in number of K 
> blocks, it also returns the file name and directory.  I don't know how 
> to get JUST the number of K blocks so I can do a numeric compare against 
> 700m.
file_size=`du -k /tmp/ad0s1a.tgz|awk '{print $1}'`
num_compare=`expr 700000 - $file_size`
> 
> 2) I have a function written that will tar/gzip the filesystem then 
> split it into pieces that will be turned into .iso files that will be 
> fed to burncd.  I would like to capture the output of commands (e.g. ls 
> -l /tmp/ad0s1a.*) into a "table" that I can examine to determine what 
> was output by the split command so I know what mkisofs commands, and how 
> many, I have to build/execute.  Example: If I end up with a 
> ad0s1a.tgz.aa, ab, and ac from split, I know I have to do mkisofs' for 3 
> files.
I don't know what your split command returns but I beleive u can put that in a loop.
> 
>  I also hope to use the same technique for determining what filesystems 
> I have to backup in the first place.  e.g. If I do a df command I want 
> to pull out the filesystem name and what mountpoint it is on.  The 
> mountpoint is important to me because I do not want to back up some 
> filesystems.  e.g. I do not want to backup /tmp.
I think that all u're missing here is the "awk" command. 
man awk ;)

fs=`df|awk '{print $6}'|grep -vi mounted`
for i in $fs
do
if [ $i = "/" ]
then
        backup_script args
elseif [ $i = "/etc" ]
        backup_script args
else
elseif [ $i = "/tmp" ]
        echo "I'm not backing up /tmp !"
else
	do something
fi
done
> 
> TIA.
> Cheers...
hope this helps.

Ed.

> 
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-questions" in the body of the message


-- 
Edmond Baroud 
UNIX Systems Admin             mailto:SoHo@admin.fido.ca
Fingerprint  140F 5FD5 3FDD 45D9 226D  9602 8C3D EAFB 4E19 BEF9
"UNIX is very user friendly, it's just picky about who its friends are."



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030317150947.6570b8a7.SoHo>