Re: Bash Script help...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Thu, May 07, 2009 at 10:12:59PM -0700, Jason Todd Slack-Moehrle wrote:
> 
> I need to write a script that I will manually start (or a cron job in  
> future) but I need it to do a number of things in order one after  
> another.  How do i do that so everything gets dont as the steps depend  
> on each other.
> 
> My questions:
> 1. How do I execute each statement and make sure subsequent statements  
> are not executed until the previous is done?

	Use the '&&' (logical "and") operator to pipeline the commands:

	cd /foo/bar && tar cvf /path/to/tarball

	This will only execute the "tar" command if the previous "cd"
	succeeded.

> 2. How do I error check so if a step fails the script stops?

	Most commands set a return status upon completion or
	error; this value is returned to the shell in the "$?"
	variable.

	You could write the above as something like:

	cd /foo/bar
	if [ $? -ne 0 ]
	then
		echo "cd failed ($?) - bailing out"
		exit 1
	fi
	tar cvf /path/to/tarball
	if [ $? -ne 0 ]
	then
		echo "tar failed ($?) - bailing out"
		exit 2
	fi

	This checks the return status of each command, checks to see if
	it's not 0 (0 is "success") and if it is not alerts the user
	and exits with it's own error status.

> 3. Since I run an SMTP Server on this box can I e-mail myself from  
> bash the nightly results?

	Yep.  "echo error message" | mail -s "script failure" user@xxxxxxx

	Will mail the specified user a message containing "error
	message" with a subject of "script failure".

> 4. when I want to run the scp to send over the file to another machine  
> for safety, how can I have it know the password to the machine I am  
> scp'ing to?

	You do this with public key authentication.  "man ssh-keygen"
	for information on how to create a keypair.

> My mind is going crazy sort of with the things that I could do to  
> protect myself in case of a system failure and making restoring easier.

	We've all been there.

> Can anyone provide insight for me?
	
	Test everything.  On regular schedules.  If you have the
	hardware available simulate a disaster condition and restore
	your backups to identical hardware to prove (to yourself and
	to management) that your disaster recovery steps actually
	do work.





							John

-- 
"I'm sorry but our engineers do not have phones."
As stated by a Network Solutions Customer Service representative when asked to
be put through to an engineer.

"My other computer is your windows box."
                                     Ralf Hildebrandt
<sxem> trying to play sturgeon while it's under attack is apparently not fun.

Attachment: pgpZjvOXsFZDX.pgp
Description: PGP signature

_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
http://lists.centos.org/mailman/listinfo/centos

[Index of Archives]     [CentOS]     [CentOS Announce]     [CentOS Development]     [CentOS ARM Devel]     [CentOS Docs]     [CentOS Virtualization]     [Carrier Grade Linux]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Linux USB]
  Powered by Linux