Shell Question


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Shell Question
# 1  
Old 06-30-2009
Shell Question

Hi All,

I am having this problem and I can't find a decent answer anywere.
I'am trying to perform multiple command in a shell script.

For example
Code:
mkdir test
tar cvzf test.tar.gz test/
rmdir test

The problem I get is that if I run this file as a cronjob, with a big "test" folder; the rmdir is making targz incomplete.

I've been using the sleep command to stretch the amount of time so that the tar command has time enhough to finish, but I would like to make it more flexible.

What is the best way to do this.. I know the "command1 && command2" option but the backupscript I am trying to make is multiline..
Also tried:

Code:
command1 &
command2 &
command3

I am a shell beginner, but not a beginning programmer..

Any help appreciated. I will post my code if someone's interested.

Daniel
# 2  
Old 06-30-2009
The easiest and best way is to put your commands in a script and call that from your crontab.
# 3  
Old 06-30-2009
Thanks, reborg, for you quick reply,

I think I wasn't clear enough.

This is the code I wrote:

Code:
#!/bin/sh
HOME=/home/mvo
PATH=/home/mvo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

echo -------------------------------------------- >> /home/mvo/backuplog
echo Backup Started `date` >> /home/mvo/backuplog
cd /

if [ -d /home/backups/`date +%w`/ ] ; then
   rm /home/backups/`date +%w`/backup.tar.gz
   echo Overwriting Day `date +%w` starting now.. >> /home/mvo/backuplog
else
   mkdir /home/backups/`date +%w`/
fi

mkdir /home/backups/tmp
mysqldump -u Username -pPassword Databasename | gzip > /home/backups/tmp/mysqldump.sql.dump.gz
echo Database Backup Complete.. >> /home/mvo/backuplog

cp -Rf /var/www /home/backups/tmp
cp -Rf /home/groupoffice /home/backups/tmp
tar czvf /home/backups/`date +%w`/backup.tar.gz /home/backups/tmp
rm -Rf /home/backups/tmp
echo GroupOffice Backup Complete.. >> /home/mvo/backuplog

echo Backup Completed `date` >> /home/mvo/backuplog

And it is a cronjob. However when I run this script ./backup.sh then everything works fine.. When I run it through a cronjob the "rm -Rf /home/backups/tmp" and the "cp -Rf /var/www /home/backups/tmp" commands are like "overwritten" by the next commands.. in other words: they start to early aka they wont wait for previous command to finish.

How can I get past this? I've tried sleep but I want to keep my script flexibel as the content of the backupdirs may change in size.
So what I want to do is wait for a command to finish before calling a next command!

Thanks for you help!

Last edited by dswz; 06-30-2009 at 09:18 PM..
# 4  
Old 07-01-2009
Try the builtin wait command...

Perhaps a sequence like:

Some-command &
wait $!
# 5  
Old 07-02-2009
did you check your mail for any message from cron ?
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Question regarding for shell scripting.

I tried to run a command which simply generates SSH key with out prompting password. After several trails , got the below command to run the script : ssh-keygen -t rsa -N "" -f id_rsa -N "" tells it to use an empty passphrase (the same as two of the enters in an interactive script) -f... (0 Replies)
Discussion started by: ulaxmi
0 Replies

2. Shell Programming and Scripting

Shell question

Hallo everyone, I have this code: DBNAME=DB_001 EXPORTPATH=./work EXPORTDATUM=${1} EXPORTSQL=$(dirname $0)/export_script.sql EXPORTSQL_TMP=${EXPORTPATH}/export.sql READYFILE=${EXPORTPATH}/ready EXPORTFILE_PREFIX=file.csv ## Prüfungen if ; then echo "not found" exit 1 fi I am... (2 Replies)
Discussion started by: ratnalein88
2 Replies

3. Shell Programming and Scripting

Shell question

Hi, I have this piece of code but I can not understand it in details and it is difficult to find in net. What is the function of the $, type, d and prefix here? This script wants to get each file from their directory. Thanks in advance. for i in $(find /file directory/ -type d | grep... (4 Replies)
Discussion started by: Homa
4 Replies

4. Homework & Coursework Questions

question in shell script

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Write a Bourne shell script which: • Has one command line argument. • If the command line argument is a... (5 Replies)
Discussion started by: abood1190
5 Replies

5. Programming

question on shell script

when i run a shell script i have to type ./my_prog and the first line of my_prog has to have #!/usr/bin/env bash how do i change it to i only have to type my_prog to run it? (4 Replies)
Discussion started by: omega666
4 Replies

6. UNIX for Dummies Questions & Answers

Linux Shell Question: how to print the shell script name ?

Suppose I have a script named "sc.sh" in the script how to print out its name "sc.sh"? (3 Replies)
Discussion started by: meili100
3 Replies

7. Shell Programming and Scripting

Shell script question

Hello, i am doing a project for school and i cannot figure out whats wrong with my 2 programs they dont seem to work at all. the first program is called isprime and naturally it checks to see if hte number is prime or not here is my code: #!/usr/bin/bash num=$1 echo you typed if ... (2 Replies)
Discussion started by: jbou1087
2 Replies

8. Shell Programming and Scripting

shell question

Can someone please explain the PS1="${x##*/}\$ " ?? how does that lop off leading components? I don't understand it.. thanks cd ( ) { command cd "$@" Actually change directory x=$(pwd) Get current directory name into variable x PS1="${x##*/}\$ " ... (2 Replies)
Discussion started by: convenientstore
2 Replies

9. Shell Programming and Scripting

shell command question

I'm running a select statmenet from shell script, sometimes the result for the select is no rows selected. my question is, can I find a command in the shell asking about the result of the select and if the result is no data found print any msg I want instead of just writting no rows selected.... (3 Replies)
Discussion started by: aya_r
3 Replies

10. UNIX for Dummies Questions & Answers

Shell question

In Unix, How to find the file when i have the matter by subdirectory wise. I have used the 'grep' command, but i can't get it, can anyone give the command of matter searched by subdirectorywise. :confused: (5 Replies)
Discussion started by: anjanb2
5 Replies
Login or Register to Ask a Question