Date: Tue, 18 Mar 2003 07:29:06 +0200 From: Giorgos Keramidas <keramida@ceid.upatras.gr> To: Tom Parquette <tparquet@twcny.rr.com> Cc: freebsd-questions@FreeBSD.ORG Subject: Re: Shell scripting questions Message-ID: <20030318052906.GA72810@gothmog.gr> 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 2003-03-17 14:38, 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. I would probably run the output of tar through split anyway, and let split take care of the rest. In one of the Linux machines I have to take care of, the backup script does the following: cd /mnt/backup tar -cf - / --exclude /mnt --exclude /proc --exclude /var/tmp \ --exclude /var/run --exclude /tmp --exclude /dev | \ gzip -9c - | \ split -b 1073741824 - `date '+backup-%Y%m%d.tgz-'` The final step that calls split will break the backup output in chunks of 1 GB, which I can then join on extraction with: cat backup-20030318.tgz-?? | tar ... > 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. Why du not plain ls? $ /bin/ls -l ~/lyrics/rainbow.lyr -rw-rw-r-- 1 giorgos giorgos 1420 Mar 18 07:00 lyrics/rainbow.lyr $ /bin/ls -l ~/lyrics/rainbow.lyr | awk '{print $5}' 1420 $ > 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'm not sure I understand what the question is here. > 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. You can always use something like this: $ df | grep '^/dev/ad' | awk '{print $1,$6}' /dev/ad0s1a / /dev/ad0s3e /var /dev/ad0s3g /usr /dev/ad0s3f /home - Giorgos 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?20030318052906.GA72810>