The Linux command line can be very powerful once you know how to use it. Príkazového riadku Linux môže byť veľmi silná, keď viete, ako ju použiť. You can parse data, monitor processes, and do a lot of other useful and cool things using it. Môžete analyzovať dáta, sledovať procesy, a robiť veľa ďalších užitočných a zajímavěji používať. There often comes a need to generate a report and mail it out. Tam býva často potreba vytvoriť správu a pošlite ju. It could be as simple a requirement as a notification that the day's backup went through fine, or did not. Mohlo by to byť tak jednoduché ako požiadavku oznámenia, že denné zálohovanie prešiel v poriadku, alebo nie. I'll help you get started with sending mails from the Linux command line and in shell scripts. Pomôžem vám začať s odosielaním mailov z príkazového riadku v Linuxe a shell skriptov. We will also cover sending attachments from the command line. Budeme tiež na odosielanie príloh z príkazového riadku. We will begin with the “mail” command. Začneme s "mail" príkaz.
MAIL MAIL
First run a quick test to make sure the “sendmail” application is installed and working correctly. Prvý beh rýchly test, aby ste sa uistili "sendmail" aplikácie je nainštalovaný a pracuje správne. Execute the following command, replacing “you@youremailid.com” with your e-mail address. Spustite nasledujúci príkaz, ktorý nahrádza "you@youremailid.com" s e-mailovú adresu.
# mail -s “Hello world” you@youremailid.com # Mail-s "Hello world" you@youremailid.com
Hit the return key and you will come to a new line. Hit klávesu Enter a budete sa na nový riadok. Enter the text “This is a test from my server”. Zadajte text "Toto je test z môjho servera." Follow up the text by hitting the return key again. Nadväzovať na text a stlačiť kláves Enter znova. Then hit the key combination of Control+D to continue. Stlačiť kombináciu klávesov Ctrl + D na pokračovať. The command prompt will ask you if you want to mark a copy of the mail to any other address, hit Control+D again. V príkazovom riadku sa vás spýta, či chcete označiť kópiu mailu na inú adresu, stlačte Ctrl + D znova. Check your mailbox. Skontrolujte si poštovú schránku. This command will send out a mail to the email id mentioned with the subject, “Hello world”. Tento príkaz vyšle mail na e-mail s id uvedenej tému, "Hello world".
To add content to the body of the mail while running the command you can use the following options. Ak chcete pridať obsah do tela mailu pri spustení príkazu, môžete použiť nasledujúce možnosti. If you want to add text on your own: Ak chcete pridať text na svoje vlastné:
# echo “This will go into the body of the mail.” | mail -s “Hello world” you@youremailid.com # Echo "To pôjde do tela mailu." | Mail-s "Hello world" you@youremailid.com
And if you want mail to read the content from a file: A ak chcete poštu čítať obsah súboru:
# mail -s “Hello world” you@youremailid.com < /home/calvin/application.log # Mail-s "Hello world" you@youremailid.com </ home / calvin / application.log
Some other useful options in the mail command are: Niektoré ďalšie užitočné voľby v mailu príkazu sú:
-s subject (The subject of the mail) -s predmet (predmet mailu)
-c email-address (Mark a copy to this “email-address”, or CC) -c e-mailovú adresu (Mark kópiu tohto "e-mailovú adresu", alebo CC)
-b email-address (Mark a blind carbon copy to this “email-address”, or BCC) -b e-mailovú adresu (Mark Slepákopie tohto "e-mailovú adresu", alebo BCC)
Here's how you might use these options: Tu je návod, ako môžete použiť nasledujúce možnosti:
# echo “Welcome to the world of Calvin n Hobbes” | mail -s “Hello world” calvin@cnh.com -c hobbes@cnh.com -b susie.derkins@cnh.com # Echo "Vitajte vo svete n Hobbes Calvin" | mail-s "Hello world" calvin@cnh.com-c-b hobbes@cnh.com susie.derkins @ cnh.com
MUTT MUTTI
One of major drawbacks of using the mail command is that it does not support the sending of attachments. Jedným z hlavných nevýhod pomocou mailu príkazu je, že nepodporuje odosielanie príloh. mutt, on the other hand, does support it. mutt, na druhú stranu, to podporujú. I've found this feature particularly useful for scripts that generate non-textual reports or backups which are relatively small in size which I'd like to backup elsewhere. Našiel som túto funkciu najmä užitočné pre skripty, ktoré generujú mimo-textové správy alebo zálohy, ktoré sú relatívne malé rozmery, ktoré som chcel zálohovať inde. Of course, mutt allows you to do a lot more than just send attachments. Samozrejme, mutt umožňuje urobiť oveľa viac ako len odosielať prílohy. It is a much more complete command line mail client than the “mail” command. To je oveľa viac kompletný príkazový riadok mailového klienta, ako "mail" príkaz. Right now we'll just explore the basic stuff we might need often. Práve teraz budeme hľadať len základné veci by sme mohli potrebovať často. Here's how you would attach a file to a mail: Tu je návod, ako sa pripojiť súbor mail:
# echo “Sending an attachment.” | mutt -a backup.zip -s “attachment” calvin@cnh.com # Echo "Odosielanie príloh." | Mutt-backup.zip-s "attachment" calvin@cnh.com
This command will send a mail to calvin@cnh.com with the subject (-s) “attachment”, the body text “Sending an attachment.”, containing the attachment (-a) backup.zip. Tento príkaz pošle mail s predmetom calvin@cnh.com (-y): "attachment" textu "Odosielanie príloh." Obsahuje prílohu (-a) backup.zip. Like with the mail command you can use the “-c” option to mark a copy to another mail id. Podobne ako s poštou, môžete použiť príkaz "-c" možnosť označiť kopírovať na inú poštu id.
SENDING MAIL FROM A SHELL SCRIPT Zasielanie e-mailu Z skript
Now, with the basics covered you can send mails from your shell scripts. Teraz, sa základy ktoré môžete posielať maily z shell skriptov. Here's a simple shell script that gives you a reading of the usage of space on your partitions and mails the data to you. Tu je jednoduchý skript, ktorý vám čítanie využitie priestoru na diskové oddiely a posiela dáta na vás.
#!/bin/bash #! / Bin / bash
df -h | mail -s “disk space report” calvin@cnh.com df-h | mail-s "disku správa" calvin@cnh.com
Save these lines in a file on your Linux server and run it. Uložiť tieto riadky v súbore na serveri Linux a spustite ho. You should receive a mail containing the results of the command. Mali by ste dostať správu obsahujúcu výsledky príkazu. If, however, you need to send more data than just this you will need to write the data to a text file and enter it into the mail body while composing the mail. Ak sa však musíte poslať viac dát, ako len to budete musieť zapisovať dáta do textového súboru a vložte ho do tela pri komponovaní mailovú poštu. Here's and example of a shell script that gets the disk usage as well as the memory usage, writes the data into a temporary file, and then enters it all into the body of the mail being sent out: Tu je príklad a skript, ktorý sa využitia disku a pamäte, zapíše údaje do dočasného súboru a potom to všetko vstupuje do tela mailu je rozposlané:
#!/bin/bash #! / Bin / bash
df -h > /tmp/mail_report.log df-h> / tmp / mail_report.log
free -m >> /tmp/mail_report.log free-m>> / tmp / mail_report.log
mail -s “disk and RAM report” calvin@cnh.com < /tmp/mail_report.log mail-s "disk a RAM správa" calvin@cnh.com </ tmp / mail_report.log
Now here's a more complicated problem. A teraz to zložitejší problém. You have to take a backup of a few files and mail then out. Musíte vziať zálohu niekoľko súborov a pošty potom von. First the directory to be mailed out is archived. Prvý zoznam bude zaslaný do von je archivovaný. Then it is sent as an email attachment using mutt. Potom ich poslal ako prílohu e-mailu pomocou mutt. Here's a script to do just that: Tu je skript, ktorý práve tohle:
#!/bin/bash #! / Bin / bash
tar -zcf /tmp/backup.tar.gz /home/calvin/files tar-zcf / tmp / backup.tar.gz / home / calvin / files
echo | mutt -a /tmp/backup.tar.gz -s “daily backup of data” calvin@cnh.com echo | mutt-/ tmp / backup.tar.gz-s "denné zálohovanie dát" calvin@cnh.com
The echo at the start of the last line adds a blank into the body of the mail being set out. Echo na začiatku posledného riadku pridá prázdne do tela mailu sú uvedené.
This should get you started with sending mails form the Linux command line and from shell scripts. To by sa vám začala s odosielaním pošty formulára príkazového riadka Linuxu a zo shell skriptov. Read up the “man page” for both mail and mutt for more options. Prečítajte si hore "man page" pre poštu a mutt pre viac možností.























You may want to have a look at Možno budete chcieť pozrieť na smtp-client.pl smtp-client.pl . . Check out the usage examples. Pozrite sa na príklady použitia. I'd say it's the ultimate command line smtp client, but I'ma little biased Povedal by som, že je to konečný príkazového riadka smtp klient, ale som trochu zaujatý
echo | mutt -a -s /tmp/backup.tar.gz “daily backup of data” echo | mutt-a-s / tmp / backup.tar.gz "denné zálohovanie dát" calvin@cnh.com calvin@cnh.com
should be: by mala byť:
echo | mutt -a /tmp/backup.tar.gz -s “daily backup of data” echo | mutt-a / tmp / backup.tar.gz-s "denné zálohovanie dát" calvin@cnh.com calvin@cnh.com
Matt - Matt --
Thanks very much for catching that! Díky moc, že na lov! I've made the correction. I've made opravu. Cheers! Na zdravie!
Hi Nazdar
You can actually send binary attachment via “mail” the following way : Môžete totiž poslať binárne pripojenie cez "mail" nasledujúcim spôsobom:
uuencode /etc/hosts /etc/hosts | mail -s “mail with binary attachment” UUEncode / etc / hosts / etc / hosts | mail-s "mail s binárnu prílohu" me@mydomain.org me@mydomain.org
BR BR
Jens Arnfelt Jens Arnfelt
Basically have a test script, whose output comes by mail to me with the use of the command taken from this article: V podstate majú testovací skript, ktorého výstupom príde poštou ku mne s použitím príkazu prevzaté z tohto článku:
echo `my test script` | mail -s “Test Result” echo "môj testovací skript` | mail-s "Výsledok testu" my_mail@mail.com my_mail@mail.com
the problem here is that when i do this.. Problém je, že keď som to .. it works correctly on the mailing front, however the mail that i then get ignores the line breaks in the output of the scripts. to funguje správne na konferencii vpredu, ale aj poštu, ktorá potom dostanete ignoruje konca riadkov vo výstupe skriptov. I really need the line breaks for readability of the output results.. Naozaj potrebujem konca riadkov pre čitateľnosť výstupu výsledkov ..
any pointers on how i could achieve this ?? žiadne odkazy na to, ako som mohol dosiahnuť? .. .. would really like some help here chcete naozaj pomoct
I'm looking for a program that will run from a script and will send mail via gmail smtp server. Hľadám program, ktorý bude prebiehať od skrípt a pošle mail cez gmail smtp server. Any ideas? Any ideas?
martin: have a look at martin: pozrite sa na smtp-client.pl smtp-client.pl – it is designed to run from a script or a cron job and send email through a specified server. - Je určený pre spustenie skriptu alebo z cronu a posielanie elektronickej pošty prostredníctvom určeného servera. For example: Napríklad:
smtp-client.pl --server smtp.gmail.com --from someone@gmail.com --to some@body.else --subject Blah --attach /path/to/a/picture.pngsmtp-client.pl --server smtp.gmail.com --from someone@gmail.com --to some@body.else --subject Blah --attach /path/to/a/picture.pngsmtp-client.pl --server smtp.gmail.com --from someone@gmail.com --to some@body.else --subject Blah --attach /path/to/a/picture.pngsmtp-client.pl --server smtp.gmail.com --from someone@gmail.com --to some@body.else --subject Blah --attach /path/to/a/picture.pngsmtp-client.pl --server smtp.gmail.com --from someone@gmail.com --to some@body.else --subject Blah --attach /path/to/a/picture.pngIt can also authenticate with a Gmail username and password among other things. To môže tiež overiť s Gmail užívateľské meno a heslo, okrem iného.
Thanks Michal. Vďaka Michal. I'll check that out. Pozriem sa na výstup.
An excellent tutorial !! Výborný tutorial! Thanks Much Thanks Much