Post

phpmail-script-php

phpmail-script-php

Le fichier bash php /usr/local/bin/phpmail

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/php
<?php

/*
syntaxe:

exemple:
*/

//*** Lecture des arguments ***
    foreach ($argv as $arg) {
         $e=explode("=",$arg);
        if(count($e)==2)
            $_GET[$e[0]]=$e[1];
        else   
            $_GET[]=$e[0];
    }

//var_dump($_GET);

// Aide
if ($e[0] == "--help" || $e[0] == "-h") {
   echo 'syntaxe :'."\n".'phpmail --message="texte du message" --exe="la commande à exécuter (texte)" --subject="objet du message" --from="adresse mail expéditeur" --to="adresse mail destinataire"'."\n";
   echo 'Option "--exe" facultative ,commande à exécuter entre 2 "`"'."\n";
exit();
}

//message
$message = '';
// option --exe
if (isset($_GET["--exe"])) {
 $message = shell_exec($_GET["--exe"]);
}

// option --message
if (isset($_GET["--message"])) {
  if (empty($message)) {
    $message =  $_GET["--message"];
  } else {
    $message = $_GET["--message"]."\n".$message;
  }
}

// Envoie message uniquement si option "--exe" ou/et "--message"
if (isset($_GET["--exe"]) || isset($_GET["--message"])) {
	$headers = 'From: '.$_GET["--from"]."\r\n".'Content-Type: text/plain; charset=utf-8'."\r\n";
	mail($_GET["--to"], '=?utf-8?B?'.base64_encode($_GET["--subject"]).'?=', $message, $headers);
}
?>

Le rendre exécutable
sudo chmod +x /usr/local/bin/phpmail

La commande pour envoyer un message après la sauvegarde
Ajouter cette ligne en fin du fichier /home/backupuser/sauvegarde.sh
/usr/local/bin/phpmail --exe="echo “grep -A 20 ‘$(date +”%d %B %Y”)’ /home/backupuser/sauvegarde.log”" --subject="Sauvegarde du $(date +"%d %B %Y")" --from="shuttle" --to="cinay@cinay.pw"

Alternative si message texte en plus
/usr/local/bin/phpmail --message="sauvegarde.log..." --exe="echo “grep -A 20 ‘$(date +”%d %B %Y”)’ /home/backupuser/sauvegarde.log”" --subject="Sauvegarde du $(date +"%-d %B %Y")" --from="shuttle" --to="cinay@cinay.pw"

Affichage date avec 0 sur le jour : $(date +"%d %B %Y") –> 01 octobre 2017
Affichage date sans 0 sur le jour : $(date +"%-d %B %Y") –> 1 octobre 2017

Cet article est sous licence CC BY 4.0 par l'auteur.