Maila från skript ger Null message body;... [LÖST]

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
magnus-s
Inlägg: 34
Blev medlem: 13 sep 2008, 08:17
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS

Maila från skript ger Null message body;... [LÖST]

Inlägg av magnus-s »

Tja jag försöker skriva ett skript som ska maila mitt ip numret på min dator till ett gmail konto.
DEL 1

Kod: Markera allt

#!/bin/bash

FILEN="$HOME/354ef345df.txt"
EPOST="xxxxx@gmail.com"
echo $FILEN
cd $HOME
wget http://www.whatsmyip.us/showipsimple.php -O $FILEN

while [ ! -s $FILEN ]
	do
	printf "."
done
echo "Foun it and emailing it. 2 sek sleep  "
sleep 1
cat $FILEN
sleep 1
echo ".. "
Slut A

Kod: Markera allt

mailx -s "IP NR" $EPOST <$FILEN
rm $FILEN
Slut B

Kod: Markera allt

cat $FILEN |mailx -s "IP NR" $EPOST  
rm $FILEN
Båda dom två sluten ger följande fel meddelande

Kod: Markera allt

Null message body; hope that's ok
Vad gör jag för fel?
hmm såg just att rm kommandot inte heller fungerar, filen 354ef345df.txt är kvar i min home kattlåg :/
Senast redigerad av 2 magnus-s, redigerad totalt 12 gång.
Användarvisningsbild
webaake
Inlägg: 3962
Blev medlem: 09 maj 2007, 09:46
OS: Xubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

Re: Maila från skript ger Null message body; hope that's ok

Inlägg av webaake »

Detta perlscript funkar bar för mig (jag kör postfix):

Kod: Markera allt

#!/usr/bin/perl
$IP_FILE = "ipemail.result";
my $newip = `wget www.whatismyip.com/automation/n09230945.asp -O - -q`;
my $oldip = getoldip();
my $send_to = "To: din_adress\@gmail.com\n";
my $reply_to = "Reply-to: din_adress\@gmail.com\n";
my $from = "From: Kanske_en_annan_adress\@telia.com\n";
my $subject = "Subject: IP Address: $newip\n";
my $content = "<h1>$newip</h1>";
if($newip ne $oldip)
{
writenewip($newip);
unless(open (MAIL, "|/usr/sbin/sendmail din_adress\@gmail.com"))
{
print "error.\n";
warn "Error starting postfix: $!";
}
else{
print MAIL $from;
print MAIL $reply_to;
print MAIL $subject;
print MAIL $send_to;
print MAIL "Content-type: text/html\n\n";
print MAIL $content;
close(MAIL) || warn "Error closing mail: $!";
print "Mail sent\n";
}
}

sub writenewip
{
my($newip) = @_;
print ("new IP = $newip\n");
open IPFILE, ">$IP_FILE";
print IPFILE "$newip\n";
close IPFILE;
}

sub getoldip
{
open IPFILE, "$IP_FILE";
my($line) = 0;
while ( <IPFILE> )
{
chomp;
$line = $_;
}
close IPFILE;
return($line);
}
Kanske du måste skapa filen ipemail.result först nånstans och peka scriptet på den.
Xubuntu på flera maskiner. Men inte Unity!
Mer Terminalanvändande i Ubuntu vore bra. Och Xfce. Och Mate.
magnus-s
Inlägg: 34
Blev medlem: 13 sep 2008, 08:17
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS

Re: Maila från skript ger Null message body; hope that's ok

Inlägg av magnus-s »

tack för svaret men jag vill inte installera nå extra server program på den här maskin.

CRAP...
Nu fungerar det inte längre att köra vanliga skript

Kod: Markera allt

#!/bin/bash
echo "hello, $USER. I wish to list some files of yours"
echo "listing files in the current directory, $PWD"
ls  # list files
körde det här skriptet i ett terminal fönster och bara stog och tuggade utan att det hände nå mer :/
Måste jag installera om linux nu ??
magnus-s
Inlägg: 34
Blev medlem: 13 sep 2008, 08:17
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS

Re: Maila från skript ger Null message body; hope that's ok

Inlägg av magnus-s »

ok nu körde jag följande skript lokalt på daton istället för putty terminal
#!/bin/bash
echo "test"
och fick det här felmedelandet

: Filen eller katalogen finns inte
: Kommandot finns inte
test


Vad är det för fel?
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Maila från skript ger Null message body; hope that's ok

Inlägg av Konservburk »

magnus-s skrev:ok nu körde jag följande skript lokalt på daton istället för putty terminal
#!/bin/bash
echo "test"
och fick det här felmedelandet

: Filen eller katalogen finns inte
: Kommandot finns inte
test


Vad är det för fel?
Mest troligt är att din skript-fil har carriage-return i slutet av varje rad, dvs windows-varianten av radbrytningar. Säg åt din textredigerare att spara filen i unix-format, eller använd kommandot dos2unix på filen om du har det installerat, annars funkar det även med sed -i 's/\r//g' filen.
magnus-s
Inlägg: 34
Blev medlem: 13 sep 2008, 08:17
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS

Re: Maila från skript ger Null message body; hope that's ok

Inlägg av magnus-s »

Tror jag lyckade slösa problemet själv här är min slutgiltiga lösning

Kod: Markera allt

#!/bin/bash

# Script for sending ip to a e-mail
# ----- Variabler -------------------------------------------
FILEN="/var/tmp/iplog.log"
EPOST="xxxxx@gmail.com"
# -----------------------------------------------------------

# --save old ip in to a var--
sed -i 's/\r//g' $FILEN
exec < $FILEN
read OLDIP
echo "OLD IP = $OLDIP"
#-- Get ip to the file ----------------
wget http://www.whatsmyip.us/showipsimple.php -O $FILEN
#-- Check if file is on disk ----
while [ ! -s $FILEN ]
	do
	printf "."
done
#-- Reads the new file in to a new var --------
sed -i 's/\r//g' $FILEN
ls $FILEN
exec < $FILEN
read NEWIP
echo "NEW IP = $NEWIP"
echo " "
#-- Cheks if old an new ip is the same and mails if not ----------------
if [ $OLDIP != $NEWIP ]; then
	echo "sending maill..."
	echo $NEWIP | mailx -s "Gorans IP" $EPOST
else
	echo "Same ip as last time"
fi
Skriv svar

Återgå till "Terminalforum"