From owner-freebsd-questions Mon Mar 17 21:29:18 2003 Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5426737B401 for ; Mon, 17 Mar 2003 21:29:16 -0800 (PST) Received: from mailsrv.otenet.gr (mailsrv.otenet.gr [195.170.0.5]) by mx1.FreeBSD.org (Postfix) with ESMTP id B013843F3F for ; Mon, 17 Mar 2003 21:29:14 -0800 (PST) (envelope-from keramida@ceid.upatras.gr) Received: from gothmog.gr (patr530-b165.otenet.gr [212.205.244.173]) by mailsrv.otenet.gr (8.12.8/8.12.8) with ESMTP id h2I5T95u012515; Tue, 18 Mar 2003 07:29:10 +0200 (EET) Received: from gothmog.gr (gothmog [127.0.0.1]) by gothmog.gr (8.12.8/8.12.8) with ESMTP id h2I5T8EK086763; Tue, 18 Mar 2003 07:29:08 +0200 (EET) (envelope-from keramida@ceid.upatras.gr) Received: (from giorgos@localhost) by gothmog.gr (8.12.8/8.12.8/Submit) id h2I5T7FB086710; Tue, 18 Mar 2003 07:29:07 +0200 (EET) (envelope-from keramida@ceid.upatras.gr) Date: Tue, 18 Mar 2003 07:29:06 +0200 From: Giorgos Keramidas To: Tom Parquette Cc: freebsd-questions@FreeBSD.ORG Subject: Re: Shell scripting questions Message-ID: <20030318052906.GA72810@gothmog.gr> References: <3E762419.3040900@twcny.rr.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3E762419.3040900@twcny.rr.com> X-RAVMilter-Version: 8.4.2(snapshot 20021217) (terpsi) Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On 2003-03-17 14:38, Tom Parquette 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