[newbie] newbie script help

2004-01-04 Thread mike
Greetings and Happy NewYear,
I would like to write a script to accomplish a task, and then run it at 
regular
intervals (I'll start another thread for that). The thing is I know zero 
about
programming and in process of learning.

I have a stand-alone firewall (mdk9.1) with no X installed, and a wireless
card and my access to the internet is from a access point else where.
I would like to get the info from /proc/net/wireless (on the firewall) 
like below.
~$ date  cat /proc/net/wireless
So after a while I came up with something like this below

#! /bin/bash

#Take wireless link readings from /proc/net/wireless and output to
#file wireless_stat
{ date; cat /proc/net/wireless; }  wireless_stat
--
That seems to give me what I want and I like to set it up to run every 5
minutes with  cron.hourly  (next thread).
Now every 24 hours I would like to take the file wireless_stat and 
tar/gzip it
up and start a new one like below.
~$ tar -c -z -f wireless_stat1.tar wireless_stat
then run
~$ rm -f wireless_stat; touch wireless_stat;
How would I write a script that it would increment the the archived files
like logrotate does? For instance.
~/tmp$ ll
-rw-rw-r--1 mike mike 3084 Jan  4 08:44 wireless_stat
-rw-rw-r--1 mike mike  359 Jan  3 19:33 wireless_stat1.tar
Then 24 hours later this.
~/tmp$ ll
-rw-rw-r--1 mike mike 3084 Jan  4 08:44 wireless_stat
-rw-rw-r--1 mike mike  359 Jan  3 19:33 wireless_stat1.tar
-rw-rw-r--1 mike mike  359 Jan  3 19:33 wireless_stat2.tar
This where I'm getting stuck would this be a loop? or a statement?
Would it be a (if,  while,  for,)? I have a book to help, but  I'm afraid
my brain is stuck in a (loop) of not understanding and can not
progress... :-)

Any guidance would appreciated,
Mike




Want to buy your Pack or Services from MandrakeSoft? 
Go to http://www.mandrakestore.com


Re: [newbie] newbie script help

2004-01-04 Thread Paul
Hi Mike,

Your script to 'logrotate' the files could look like this:

#!/bin/sh

filetest()
{
if [ -f wireless_stat$1.tar ] ; then
   mv -f  wireless_stat$1.tar wireless_stat$2.tar
fi
}
cd /directory where your files are
filetest 4 5
filetest 3 4
filetest 2 3
filetest 1 2
The filetest function takes 2 arguments, being the oldest and one newer 
file (you can expand this check to as many as you like, but if you want 
to keep things around forever, this would not be the best way to do it).

To run this thing, put it somewhere and let root's cron take care of things.

Paul

On 01/04/2004 05:05 PM, mike wrote:

Greetings and Happy NewYear,
I would like to write a script to accomplish a task, and then run it at 
regular
intervals (I'll start another thread for that). The thing is I know zero 
about programming and in process of learning.
 


Want to buy your Pack or Services from MandrakeSoft? 
Go to http://www.mandrakestore.com


Re: [newbie] newbie script help

2004-01-04 Thread mike
Paul wrote:

Hi Mike,

Your script to 'logrotate' the files could look like this:

#!/bin/sh

filetest()
{
if [ -f wireless_stat$1.tar ] ; then
   mv -f  wireless_stat$1.tar wireless_stat$2.tar
fi
}
cd /directory where your files are
filetest 4 5
filetest 3 4
filetest 2 3
filetest 1 2
The filetest function takes 2 arguments, being the oldest and one 
newer file (you can expand this check to as many as you like, but if 
you want to keep things around forever, this would not be the best way 
to do it).

To run this thing, put it somewhere and let root's cron take care of 
things.

Paul
Thanks Paul!
I think I understand the function is to take the oldest which is the 
first argument
if it exists rename it to the second argument. So it cd's to my file 
directory and
sees if wireless_stat3.tar it would filetest 3 4 (rename file3.tar to 
file4.tar) and
2 to 3, 1 to 2. Yes, I was wondering how to keep it from running 
forever. I see
now by what you have in your script.

Now to put it all together could I do something like this?
-
#! /bin/bash
tar -c -z -f wireless_stat1.tar wireless_stat

something()
{
if [ -f wireless_stat1.tar ] ; then
   rm -f wireless_stat; touch wireless_stat;
fi
}
filetest()
{
if [ -f wireless_stat$1.tar ] ; then
  mv -f  wireless_stat$1.tar wireless_stat$2.tar
fi
}
cd /home/mike/tmp
filetest 4 5
filetest 3 4
filetest 2 3
filetest 1 2
-
Mike


Want to buy your Pack or Services from MandrakeSoft? 
Go to http://www.mandrakestore.com


Re: [newbie] newbie script help

2004-01-04 Thread Paul
On 01/04/2004 07:30 PM, mike wrote:

I think I understand the function is to take the oldest which is the
first argument if it exists rename it to the second argument.
Yup.

So it cd's to my file directory and
sees if wireless_stat3.tar it would filetest 3 4 (rename file3.tar to
file4.tar) and
2 to 3, 1 to 2. Yes, I was wondering how to keep it from running
forever. I see now by what you have in your script.
Good! :)

Now to put it all together could I do something like this?
I'd suggest this:
#--start script
#! /bin/bash
filetest()
{
if [ -f wireless_stat$1.tar ] ; then
  mv -f wireless_stat$1.tar wireless_stat$2.tar
fi
}
cd /home/mike/tmp
filetest 4 5
filetest 3 4
filetest 2 3
filetest 1 2
tar -c -z -f wireless_stat1.tar wireless_stat
if [ -f wireless_stat1.tar ] ; then
 rm -f wireless_stat; touch wireless_stat;
fi
#--end script
First you define the function (it is only defined, not run), then you cd 
to $HOME/tmp. Then cycle the backup tar-files.  That way you move the 
existing backups out of the way, preserving the old #1 as #2 and getting 
rid of old #5 in the process. And then you build the new stat1.tar after 
which you create a clean stat-file. Do you see the logic in this?

I hope this is clear enough.
Good luck,
Paul
Want to buy your Pack or Services from MandrakeSoft? 
Go to http://www.mandrakestore.com


Re: [newbie] newbie script help

2004-01-04 Thread mike
Paul wrote:

On 01/04/2004 07:30 PM, mike wrote:

I think I understand the function is to take the oldest which is the
first argument if it exists rename it to the second argument.


Yup.

So it cd's to my file directory and
sees if wireless_stat3.tar it would filetest 3 4 (rename file3.tar to
file4.tar) and
2 to 3, 1 to 2. Yes, I was wondering how to keep it from running
forever. I see now by what you have in your script.


Good! :)

Now to put it all together could I do something like this?


I'd suggest this:
#--start script
#! /bin/bash
filetest()
{
if [ -f wireless_stat$1.tar ] ; then
  mv -f wireless_stat$1.tar wireless_stat$2.tar
fi
}
cd /home/mike/tmp
filetest 4 5
filetest 3 4
filetest 2 3
filetest 1 2
tar -c -z -f wireless_stat1.tar wireless_stat
if [ -f wireless_stat1.tar ] ; then
 rm -f wireless_stat; touch wireless_stat;
fi
#--end script
First you define the function (it is only defined, not run), then you 
cd to $HOME/tmp. Then cycle the backup tar-files.  That way you move 
the existing backups out of the way, preserving the old #1 as #2 and 
getting rid of old #5 in the process. And then you build the new 
stat1.tar after which you create a clean stat-file. Do you see the 
logic in this?


I believe I do now, I had things reversed, I should of taking care of 
moving my backups
to make room for the new ones before deleting the first file, else lose 
data!
Also I noticed that I was trying to make a function out a if statement ( 
something() )
which was not necessary, probably not right either  *grin*
And the #--startscript, #--endsript to know when the script begins and ends.
I should also add some comments about what its doing for my sake.

I hope this is clear enough.
Yes, again thanks Paul!
You walked me right through it, easier than I thought it would be.
I'll probably post back on the running the cron part but, I'll research
it a bit more before I panic. :-)
Mike


Want to buy your Pack or Services from MandrakeSoft? 
Go to http://www.mandrakestore.com


Cron (was Re: [newbie] newbie script help)

2004-01-04 Thread Paul
On 01/04/2004 08:32 PM, mike wrote:

I'll probably post back on the running the cron part but, I'll research
it a bit more before I panic. :-)
 

Your friends there will be:

man crontab
man 5 crontab
and perhaps also man cron
It is not difficult, just something you need to get used to.

su to root, and type 'crontab -e' to edit the crontab file. But first 
read up on how to define things. And make sure you know how to handle vi...

Paul

Want to buy your Pack or Services from MandrakeSoft? 
Go to http://www.mandrakestore.com


Re: Cron (was Re: [newbie] newbie script help)

2004-01-04 Thread robin
Paul wrote:
On 01/04/2004 08:32 PM, mike wrote:

I'll probably post back on the running the cron part but, I'll research
it a bit more before I panic. :-)
 

Your friends there will be:

man crontab
man 5 crontab
and perhaps also man cron
It is not difficult, just something you need to get used to.

su to root, and type 'crontab -e' to edit the crontab file. But first 
read up on how to define things. And make sure you know how to handle vi...

For those who think life is too short for vi, there is also kcron.

Sir Robin

--
Certitude is possible for those who only own one encyclopedia.
- Robert Anton Wilson
Robin Turner
IDMYO
Bilkent Univeritesi
Ankara 06533
Turkey
www.bilkent.edu.tr/~robin



Want to buy your Pack or Services from MandrakeSoft? 
Go to http://www.mandrakestore.com


Re: Cron (was Re: [newbie] newbie script help)

2004-01-04 Thread Anne Wilson
On Sunday 04 January 2004 22:00, robin wrote:

 For those who think life is too short for vi, there is also kcron.

and Webmin

Anne
-- 
Registered Linux User No.293302
Have you visited http://twiki.mdklinuxfaq.org yet?


Want to buy your Pack or Services from MandrakeSoft? 
Go to http://www.mandrakestore.com


Re: [newbie] script help

2003-01-02 Thread Mark Weaver
MG wrote:

Hey Mark,
I was just using ./HW
as in:
[mike@avatar mike]$ ./HW
What I gathered was if the script was in a directory, that was in my PATH, I 
could just use the name of the script instead of the whole path.
I looked in my /home/mike/.bash_profile file and it said:

[mike@avatar mike]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

Perhaps /home/mike/bin is not in the path of PATH=$PATH:$HOME/bin ?

Mike

Hi Mike,

Thats correct. When you're in your home dir and you're calling an 
executable file you'll need to include the path to that executable in 
order for it to be executed.

Your other option would be to place the file somewhere in your path 
such as /usr/bin or /usr/local/bin.
--
Mark
---
I had 49 days uptime until my wife brought the servers
down when she ran the vacuum cleaner.
---
Paid for by Penguins against modern appliances(R)
Linux User Since 1996
Powered by Mandrake Linux 8.2  9.0


Want to buy your Pack or Services from MandrakeSoft? 
Go to http://www.mandrakestore.com



Re: [newbie] script help

2003-01-01 Thread Mark Weaver
MG wrote:

Hi all, This question is not really Mandrake specific although I am using
Mandrake8.2 (and like it alot!)...anyways trying to learn the bash shell.
I wrote a small script (the Hello World script) and named it HW.
I did a chmod 755 to it, so all could read and execute it.
I made a /bin directoy in my home directoy and put the script there.
But my problem is I can only execute it when I am in the directoy of the
script. I have a permission problem(I think), but cant seem to find it. Any 
help
would be appreciated.
Here is where scipt is at:
/home/mike/bin/practice_script/


[mike@avatar practice_script]$ ls -al
total 12
drwxr-xr-x2 mike mike 4096 Dec 28 09:51 ./
drwxr-xr-x3 mike mike 4096 Dec 28 21:24 ../
-rwxr-xr-x1 mike mike   52 Dec 28 09:51 HW*
-rw-r--r--1 mike mike0 Dec 28 09:49 HW~

If I execute the script any where but /practice_script/ I get this
[mike@avatar mike]$ ./HW
bash: ./HW: No such file or directory

Thanks,
 Mike

Mike,

When you call it from anywhere else except the directory where it's 
located how are you calling it? for instance...if yo're in /home/mike 
and you want to call the script you would call it this way:

	bin/practice_script/HW   [enter]

Is this how you're doing it?

Mark



Want to buy your Pack or Services from MandrakeSoft? 
Go to http://www.mandrakestore.com



Re: [newbie] script help

2003-01-01 Thread MG
Hey Mark,
I was just using ./HW
as in:
[mike@avatar mike]$ ./HW
What I gathered was if the script was in a directory, that was in my PATH, I 
could just use the name of the script instead of the whole path.
I looked in my /home/mike/.bash_profile file and it said:

[mike@avatar mike]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

Perhaps /home/mike/bin is not in the path of PATH=$PATH:$HOME/bin ?

Mike

On Wednesday 01 January 2003 03:36 pm, you wrote:
 MG wrote:
  Hi all, This question is not really Mandrake specific although I am using
  Mandrake8.2 (and like it alot!)...anyways trying to learn the bash shell.
  I wrote a small script (the Hello World script) and named it HW.
  I did a chmod 755 to it, so all could read and execute it.
  I made a /bin directoy in my home directoy and put the script there.
  But my problem is I can only execute it when I am in the directoy of the
  script. I have a permission problem(I think), but cant seem to find it.
  Any help
  would be appreciated.
  Here is where scipt is at:
  /home/mike/bin/practice_script/
 
 
  [mike@avatar practice_script]$ ls -al
  total 12
  drwxr-xr-x2 mike mike 4096 Dec 28 09:51 ./
  drwxr-xr-x3 mike mike 4096 Dec 28 21:24 ../
  -rwxr-xr-x1 mike mike   52 Dec 28 09:51 HW*
  -rw-r--r--1 mike mike0 Dec 28 09:49 HW~
 
  If I execute the script any where but /practice_script/ I get this
  [mike@avatar mike]$ ./HW
  bash: ./HW: No such file or directory
 
  Thanks,
   Mike

 Mike,

 When you call it from anywhere else except the directory where it's
 located how are you calling it? for instance...if yo're in /home/mike
 and you want to call the script you would call it this way:

   bin/practice_script/HW   [enter]

 Is this how you're doing it?

 Mark


Want to buy your Pack or Services from MandrakeSoft? 
Go to http://www.mandrakestore.com



Re: [newbie] script help

2003-01-01 Thread Chuck Burns
Here's the rub, by type ./HW you are telling bash to run it in the
current directory.  Also, path's are NOT recursive, so when you put it
inside a second folder inside the ~/bin directory, it will not see it. 
Put the HW script directly into your ~/bin directory, then then type
just HW (NOT ./HW)

Chuck

On Wed, 2003-01-01 at 17:10, MG wrote:
Hey Mark,
I was just using ./HW
as in:
[mike@avatar mike]$ ./HW
What I gathered was if the script was in a directory, that was in my PATH, I 
could just use the name of the script instead of the whole path.
I looked in my /home/mike/.bash_profile file and it said:

[mike@avatar mike]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

Perhaps /home/mike/bin is not in the path of PATH=$PATH:$HOME/bin ?

Mike

On Wednesday 01 January 2003 03:36 pm, you wrote:
 MG wrote:
  Hi all, This question is not really Mandrake specific although I am using
  Mandrake8.2 (and like it alot!)...anyways trying to learn the bash shell.
  I wrote a small script (the Hello World script) and named it HW.
  I did a chmod 755 to it, so all could read and execute it.
  I made a /bin directoy in my home directoy and put the script there.
  But my problem is I can only execute it when I am in the directoy of the
  script. I have a permission problem(I think), but cant seem to find it.
  Any help
  would be appreciated.
  Here is where scipt is at:
  /home/mike/bin/practice_script/
 
 
  [mike@avatar practice_script]$ ls -al
  total 12
  drwxr-xr-x2 mike mike 4096 Dec 28 09:51 ./
  drwxr-xr-x3 mike mike 4096 Dec 28 21:24 ../
  -rwxr-xr-x1 mike mike   52 Dec 28 09:51 HW*
  -rw-r--r--1 mike mike0 Dec 28 09:49 HW~
 
  If I execute the script any where but /practice_script/ I get this
  [mike@avatar mike]$ ./HW
  bash: ./HW: No such file or directory
 
  Thanks,
   Mike

 Mike,

 When you call it from anywhere else except the directory where it's
 located how are you calling it? for instance...if yo're in /home/mike
 and you want to call the script you would call it this way:

   bin/practice_script/HW   [enter]

 Is this how you're doing it?

 Mark




Want to buy your Pack or Services from MandrakeSoft? 
Go to http://www.mandrakestore.com





Want to buy your Pack or Services from MandrakeSoft? 
Go to http://www.mandrakestore.com



Re: [newbie] script help

2003-01-01 Thread MG
Thanks Chuck!
It works, I believe I understand now, thats why I got a 
No such file or directory
it could not see it in the folder I made.
again appreciate the guidance.

Mike

On Wednesday 01 January 2003 04:54 pm, you wrote:
 Here's the rub, by type ./HW you are telling bash to run it in the
 current directory.  Also, path's are NOT recursive, so when you put it
 inside a second folder inside the ~/bin directory, it will not see it.
 Put the HW script directly into your ~/bin directory, then then type
 just HW (NOT ./HW)

 Chuck

 On Wed, 2003-01-01 at 17:10, MG wrote:
 Hey Mark,
 I was just using ./HW
 as in:
 [mike@avatar mike]$ ./HW
 What I gathered was if the script was in a directory, that was in my
 PATH, I could just use the name of the script instead of the whole path. I
 looked in my /home/mike/.bash_profile file and it said:

 [mike@avatar mike]$ cat .bash_profile
 # .bash_profile

 # Get the aliases and functions
 if [ -f ~/.bashrc ]; then
 . ~/.bashrc
 fi

 # User specific environment and startup programs

 PATH=$PATH:$HOME/bin

 Perhaps /home/mike/bin is not in the path of PATH=$PATH:$HOME/bin ?

 Mike

 On Wednesday 01 January 2003 03:36 pm, you wrote:
  MG wrote:
   Hi all, This question is not really Mandrake specific although I am
   using Mandrake8.2 (and like it alot!)...anyways trying to learn the
   bash shell. I wrote a small script (the Hello World script) and
   named it HW. I did a chmod 755 to it, so all could read and
   execute it. I made a /bin directoy in my home directoy and put the
   script there. But my problem is I can only execute it when I am in
   the directoy of the script. I have a permission problem(I think),
   but cant seem to find it. Any help
   would be appreciated.
   Here is where scipt is at:
   /home/mike/bin/practice_script/
  
  
   [mike@avatar practice_script]$ ls -al
   total 12
   drwxr-xr-x2 mike mike 4096 Dec 28 09:51 ./
   drwxr-xr-x3 mike mike 4096 Dec 28 21:24 ../
   -rwxr-xr-x1 mike mike   52 Dec 28 09:51 HW*
   -rw-r--r--1 mike mike0 Dec 28 09:49 HW~
  
   If I execute the script any where but /practice_script/ I get this
   [mike@avatar mike]$ ./HW
   bash: ./HW: No such file or directory
  
   Thanks,
Mike
 
  Mike,
 
  When you call it from anywhere else except the directory where it's
  located how are you calling it? for instance...if yo're in /home/mike
  and you want to call the script you would call it this way:
 
  bin/practice_script/HW   [enter]
 
  Is this how you're doing it?
 
  Mark

 

 Want to buy your Pack or Services from MandrakeSoft?
 Go to http://www.mandrakestore.com


Want to buy your Pack or Services from MandrakeSoft? 
Go to http://www.mandrakestore.com



[newbie] script help

2001-04-05 Thread Hipólito López

Hi to all,

If I have a file with the following data:

listen 010:atm1.7530
listen 010:atm120.7080
listen 010:nac1.7506
listen 010:ist1.7508
listen 010:tar.7501
listen 010:nacpos.7510

How I can extract of the second column since ':' to '.' 
example:
010:atm1.7530 atm1
010:atm120.7080   atm120

I think with the command awk I can do that.. but right now I don't have any
idea

Can anybody help me?


Thanks in advance

 winmail.dat


Re: [newbie] script help

2001-04-05 Thread Civileme

On Thursday 05 April 2001 15:52, you wrote:
 Hi to all,

 If I have a file with the following data:

 listen 010:atm1.7530
 listen 010:atm120.7080
 listen 010:nac1.7506
 listen 010:ist1.7508
 listen 010:tar.7501
 listen 010:nacpos.7510

 How I can extract of the second column since ':' to '.'
 example:
 010:atm1.7530   atm1
 010:atm120.7080 atm120

 I think with the command awk I can do that.. but right now I don't have any
 idea

 Can anybody help me?


 Thanks in advance

cat datafilename | gawk -F: '{ print $2 }' | gawk -F. '{ print $1 }'  outfile

then it will have the contents in outfile that you desire.

Civileme

Yeh, one-line filters are common for something that would be a hairy VB job.




Re: [newbie] script help

2001-04-05 Thread Michael R. Batchelor

 listen 010:atm1.7530
 listen 010:atm120.7080
[...]
 How I can extract of the second column since ':' to '.'
 example:
 010:atm1.7530 atm1
 010:atm120.7080 atm120

cat datafilename | gawk -F: '{ print $2 }' | gawk -F. '{ print $1 }'
 outfile



or

$ cut -f 2 -d : datafile|cut -f 1 -d .  outfile

Probably uses fewer cpu cycles if the datafile is big.

MB