![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| while loop inside while loop | panknil | Shell Programming and Scripting | 0 | 01-07-2008 12:49 PM |
| For loop | xramm | HP-UX | 3 | 10-10-2007 02:20 PM |
| While Loop | hemangjani | Shell Programming and Scripting | 2 | 11-02-2006 11:01 AM |
| for loop | munnabhai1 | Shell Programming and Scripting | 3 | 04-06-2006 02:30 PM |
| how to get the similar function in while loop or for loop | trynew | Shell Programming and Scripting | 3 | 06-17-2002 11:09 AM |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
||||
|
sh loop Need some help
Hi,
I have the following script that does a backup via cpio to an NFS mount. The problem is that I only seem to be getting root. I'm not sure what I'm doing wrong here but it is not working. Following is the entire script. I've highlighted the areas where I think I have a problem or are at least relevant, I think. ![]() #!/bin/sh # # Set configuration variables # NFSMOUNT='/mnt/nfs' BACKUP_LOG='/usr/local/backup_logs' EXCLUDE_FS='/mnt/nfs' HARDWARE_LOG='/var/adm/messages' export NFSMOUNT BACKUP_LOG EXCLUDE_FS HARDWARE_LOG # Get date in MMDDYY format MDY=`date +%m%d%y` if [ ! -d ${BACKUP_LOG} -o ! -w ${BACKUP_LOG} ]; then echo "${BACKUP_LOG} doesn't exist or isn't writable" exit 1 fi echo "### Backup starting at `date`" # LOG_START is the number of lines in our hardware log # when the backup began. We're not concerned with anything # that occurred before now. LOG_START=`wc -l < ${HARDWARE_LOG}` # Strip leading and trailing spaces LOG_START=`expr ${LOG_START}` BACKUPTYPE="cpio" # Get list of unix file systems to back up MOUNTEDSYSTEMS=`df -F ufs | cut -d' ' -f1 | sort` # Remove excluded file systems from list for FS in $MOUNTEDSYSTEMS do case " ${EXCLUDE_FS} " in # If its excluded do nothing *" ${FS} "*);; # Add entry to list *) case "${FILESYSTEMS}" in # List is empty so this is the first entry '') FILESYSTEMS="${FS}";; # List contains entries so append to list *) FILESYSTEMS="${FILESYSTEMS} ${FS}";; esac;; esac done cd / if [ "$BACKUPTYPE" = "dump" ]; then # Backup using dump for FS in ${FILESYSTEMS} do echo "Dumping ${FS} ${NFSMOUNT}" | \ tee -a ${BACKUP_LOG}/bu.ufsdump.${MDY} /usr/sbin/ufsdump 0fu ${NFSMOUNT} ${FS} 2>&1 | \ # we're only concerned with the last two lines of output #to determine if this was a successful dump tee -a ${BACKUP_LOG}/bu.ufsdump.${MDY} | tail -3 # Count dump of file system FS_COUNT=`expr ${FS_COUNT} + 1` done else #Backup using cpio for FS in ${FILESYSTEMS} do echo "Writing cpio archive of ${FS} to ${NFSMOUNT}" |\ tee -a ${BACKUP_LOG}/bu.cpio.${MDY}.err \ >> ${BACKUP_LOG}/bu.cpio.${MDY} # The output of find will always be relative to root find .${FS} -print -xdev | \ # Use sed to change "./" back to "/" so Solaris cpio won't bark sed -e 's/^\.\/$/\//' | \ cpio -oc -O ${NFSMOUNT}/`hostname`.${MDY} \ 2>> ${BACKUP_LOG}/bu.cpio.${MDY}.err \ 1>> ${BACKUP_LOG}/bu.cpio.${MDY} # count cpio archive of file system FS_COUNT=`expr ${FS_COUNT} + 1` done cat ${BACKUP_LOG}/bu.cpio.${MDY}.err fi # Display filesystem information that was just backed up echo "### Currently mounted file systems:" df -k ${FILESYSTEMS} echo "###" LOG_END=`wc -l < ${HARDWARE_LOG}` # strip leading and trailing spaces LOG_END=`expr ${LOG_END}` if [ "${LOG_BEGIN}" -ne "${LOG_END}" ]; then # Report errors in log during backup # add additional grep lines to remove normal messages appearing in your # system logging script echo "### System logs generated during backup:" cat ${HARDWARE_LOG} | \ sed -e "1,${LOG_START}d" | \ grep -v "connect from " | \ grep v "refused connection from " | \ nawk '{ print substr($0,1,78) }; \ length > 78 { print " " substr ($0,79) }' echo "###" fi # Remove old log files if [ "${BACKUPTYPE}" = "cpio" ]; then cd ${BACKUP_LOG} find . -mtime +14 -follow -exec rm {} \; ls -lt ${BACKUP_LOG}/* echo fi echo "Backup Finished at " `date` |
| Bookmarks |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|