That's getting a little too complicated. My script is a simple one that is run from /etc/cron.hourly/ by root as defined in /etc/crontab. This is on a single user machine (plus root etc) and just copies the selected data, files susceptable to corruption and more so, being open when the power is pulled on accident. Yes I know this is not good to do but it happens. I have the same script bu lots of crucial stuff but I want to be able to choose just what I want so I can't accidentally overwrite a program that i'd been coding for several hours with just the template file I started of with. On 13 Apr 2002 13:37:22 -0700, der.hans wrote: > Am 13. Apr, 2002 schwätzte Bryce C. so: > > > Could anyone give me some help with some bash scripting. I'm trying to > > write a script for an hourly back up but I don't know how to add a > > timestamp in to the tar output file name. What I have currently (with > > confidential parts hidden) is: > > > > #!/bin/bash > > su _USER_ -c "cd /home/_USER_; tar -czf > > _NFSMOUNT_/_FILENAME_._COMPUTERNAME_._DATE_.tar.gz _DIRECTORYTOBU_/" > > > > Anything with _TEXT_ is the ommitted text except for the _DATE_. Anyone > > please? > > I toss the date in the format I want into a variable, then use that > variable. That variable should be expanded just fine. The key is to make > sure that it gets assigned and that it doesn't have any spaces in it. > > In my script below you could add the following two lines after the $DATE > variable is assigned to make sure you're getting what you want. > > echo "<$DATE>" > exit > > The angle-brackes act as delimiters in the output to show you exactly what > the $DATE variable contains. > > If you su with a dash, then you should go to their home dir, so you don't > need the cd. If you don't trust that you should get the home path from > /etc/passwd. > > It looks like you're only backing up one dir within the home dir. If you > want to backup the entire home dir, then you should do that from one dir up > to get all the dotfiles. That will add an extra-level to the path that's > backed up. > > You don't need to su unless you're wanting the user to be able to access the > backup directly. That's a good idea, but you should remove their write perms > afterwards. > > You might want to add the -l option to make sure you don't wander down any > SMB mounts. > > You can also use the -C option to do the cd. > > #!/bin/bash > > USER=$1 > if [ $2 ] ; then > if [ $2 = 'full' ] ; then > FULL=yes > fi > fi > > DIR2BACKUP=something > NFSMOUNT=something > FILENAME=something > HOSTNAME=`hostname` > > DATE=`date +%d%b%Y` > USERSHOME=`grep ^$USER: /etc/passwd | cut -f 6 -d :` > TARBALL=$NFSMOUNT/$FILENAME.$HOSTNAME.$DATE.tar.gz > > if [ $FULL = 'yes' ] ; then > DIR2BACKUP=`basename $USERSHOME` > su $USER -c "tar clzf $TARBALL -C $USERSHOME/.. $DIR2BACKUP/" > else > su $USER -c "tar clzf $TARBALL -C $USERSHOME $DIR2BACKUP/" > fi > > chmod w-a $TARBALL > > # end > > Check for typos and bad code. Munge for your purposes. Translate to Swahili. > > ciao, > > der.hans > -- > # https://www.LuftHans.com/ > # Two roads diverged in a wood, and I -- > # I took the one less traveled by, > # And that has made all the difference. -- Robert Frost > # I, OTOH, prefer to just go stomping through the desert... - der.hans > > > ________________________________________________ > See http://PLUG.phoenix.az.us/navigator-mail.shtml if your mail doesn't post to the list quickly and you use Netscape to write mail. > > PLUG-discuss mailing list - PLUG-discuss@lists.plug.phoenix.az.us > http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss >