
On 18 June 2012 19:51, Odhiambo Washington <odhiambo@gmail.com> wrote:
On Mon, Jun 18, 2012 at 5:08 PM, Thuo Wilson <lixton@gmail.com> wrote:
On 18 June 2012 16:34, Odhiambo Washington <odhiambo@gmail.com> wrote:
On Mon, Jun 18, 2012 at 4:01 PM, Thuo Wilson <lixton@gmail.com> wrote:
On 18 June 2012 10:52, gisho <gichuhie@gmail.com> wrote:
- as @wash said above, only move the specific file - not everything which is denoted by "*" so this should look like mv /tmp/$f /tmp2
- instead of reading mail spool, you can pipe incoming mails to a script either by using procmailrc or by using /etc/aliases file if using postfix. this could look like this:
smsemail: "|/usr/libexec/postfix/trap.py"
Thanks Gisho, Thats is *part* of what i needed. I will use the alias. But note supposing am doing bulk sms - this may [not affirmative] fail due to numbers of emails < inflow... Second: i decided to change script to read as follows; simpler but doing better [?]
Imagine i don't have the script called from alias. How do i read one line at a time in the file "email_to_sms" and exec the command to send the sms. That is my main issue
Am sure its something simple i havent scratched my head enough!
#!/bin/bash `grep Subject /var/spool/mail/sms > email_to_sms` cat /dev/null > /var/spool/mail/sms killall -9 gammu-smsd #since for some reason gammu-smsd is using use_lock and wont disable echo `cat email_to_sms` | /usr/bin/gammu --sendsms TEXT `awk '{print $2}' email_to_sms` sleep 15 #wait for the above to finish /etc/init.d/gammu-smsd start #start to continue checking any incoming sms cat email_to_sms >> email_to_sms2 #incase make a backup file cat /dev/null > email_to_sms #empty for no2 message in the line :)
for sure slowly we are getting there...
So the file email_to_sms is a text file containing some data you need to work on, each line at a time:
for data in `cat email_to_sms`; do echo $data | /usr/bin/gammu $ARGS .....; done
isnt this doing same thing as my script? :)
That will surely iterate through all the data in the file, one line at a time... You can do loop processing until there is nothing left, or always check if exists a file before you act on it..
However at this point, I suggest you work on a file which has been moved to another directory, so move the file first and reference it from where it is. Since the filenames seem to clash at some point (or why do you wven want to move the files?) then my initial suggestion stands - append the current timestamp value to the filename to make it unique.
Please try and tell breakdown what this command line does:
echo `cat email_to_sms` | /usr/bin/gammu --sendsms TEXT `awk '{print $2}' email_to_sms`
assuming the file content looks like:
A +254XXXXX F A +255YYYYYY G A +256ZZZZZ K
echo `cat email_to_sms` The command just get the file content - first part; /usr/bin/gammu --sendsms TEXT `awk '{print $2}' email_to_sms` - send an sms to the number on the second column (2) in the file email_to_sms
Then again, if you need a program to rexec, there is no need to give it a SIGKILL (-9). Just do a SIGHUP (-1) So you can rexec gammu after it completes processing the first file while making it loop to look for the existence of another file in the parent directory ... and the loop continues...
Not bad thought!
[wash@jaribu ~/THUO]$ pwd /home/wash/THUO
[wash@jaribu ~/THUO]$ ls -1 email_to_sms email_to_sms1 email_to_sms2 [wash@jaribu ~/THUO]$ file=`ls -1` [wash@jaribu ~/THUO]$ telno=`cat $file | awk '{print $2}'` [wash@jaribu ~/THUO]$ for t in $telno; do echo -e "$t\n"; done +254XXXXX
+255YYYYYY
+256ZZZZZ
+333XXXXX
+444YYYYYY
+555ZZZZZ
+6664XXXXX
+7774YYYYYY
+8884ZZZZZ
I hope this gives you some clue. It's a way to deal with each file at a time..
I want other text too A +254XXXXX F RR A +255YYYYYY G HH A +256ZZZZZ K LL My dilemma is this in simple terms. Read line 1 then execute a command *if there is another line? "if"* Read line 2 then execute a command Read line 3 then execute a command Note:i can also read all the columns and read all rows at a go with awk. But narrowing down to row/line at a time - sijui hiyo! Reading the file i know how to- is not a problem - my script is doing, *but reading a line at a time then EXEC, line2 then EXEC, line3 then EXEC - that is my issue :)* * *
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254733744121/+254722743223 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ I can't hear you -- I'm using the scrambler.
_______________________________________________ Skunkworks mailing list Skunkworks@lists.my.co.ke ------------ List info, subscribe/unsubscribe http://lists.my.co.ke/cgi-bin/mailman/listinfo/skunkworks ------------
Skunkworks Rules http://my.co.ke/phpbb/viewtopic.php?f=24&t=94 ------------ Other services @ http://my.co.ke