arobinson888 Posted September 2, 2015 Share Posted September 2, 2015 Hello, I am trying to get rsync to copy files to an external hard drive, log everything to a file, and then e-mail me that file after the operation has complete. So far rsync copy and writing to log file work fine, but I can not get the script to e-mail me the log file. I have set up the SMTP settings in unraid 6.1 notifications, and the test function does send an e-mail properly. Below is the script I am running/ working on. #!/bin/bash #File and directory backup script # Andrew Robinson 2015 #Each line is set up to run rsync on a specific directory and back up to external HDD. #after sync completed, log file with results is writen #then e-mailed off to me echo "Backing up data directories to removeable hard drive" rsync -avh --delete /mnt/user/ /mnt/disks/ST4000DM000_1F2168_Z300HVNP/ --log-file=/var/log/backup_rsync.log echo "Backup complete" cat /var/log/backup_rsync.log | mail -s "backup_rsync.log" [email protected] Thanks Link to comment
trurl Posted September 2, 2015 Share Posted September 2, 2015 I use a line similar to this /usr/local/emhttp/webGui/scripts/notify -i normal -s "Cache Drive Backup Completed" -d " Cache Drive Backup completed at `date`" to get notifications from my scripts. Link to comment
WeeboTech Posted September 2, 2015 Share Posted September 2, 2015 If you want to mail with the mail command then mailx slackware package needs to be installed. This isn't done by default because LT wants people to use the notification system. If this script runs in cron, stdout and stderr normally get mailed to whatever you've configured in the mail settings page. Within the script you can do a cat of the log file and will get mailed with the job's output. I.E. you should not need the cat logfile | mail -s 'subject' You can cat the logfile within the script and it will be included with job output via cron. To send it as a separate log, you'll need to install mailx or call SSMTP directly. http://linux.die.net/man/8/ssmtp Here's a quick example of how to do it via ssmtp directly. Note I have the -v verbose switch on, normally that would not be included. root@unRAIDb:/tmp# ls -l > logfile root@unRAIDb:/tmp# cat example_ssmtp.sh #!/bin/bash cat - logfile <<-EOF | ssmtp -v [email protected] Subject: logfile for `date` EOF root@unRAIDb:/tmp# ./example_ssmtp.sh [<-] 220 hosting.empoweringmedia.net ESMTP Exim 4.84 Wed, 02 Sep 2015 13:38:52 -0400 [->] EHLO unRAIDb [<-] 250 HELP [->] STARTTLS [<-] 220 TLS go ahead [->] EHLO unRAIDb [<-] 250 HELP [->] AUTH LOGIN [<-] 334 ************ [->] ********** [<-] 334 ****** [<-] 235 Authentication succeeded [->] MAIL FROM:<[email protected]> [<-] 250 OK [->] RCPT TO:<[email protected]> [<-] 250 Accepted [->] DATA [<-] 354 Enter message, ending with "." on a line by itself [->] Received: by unRAIDb (sSMTP sendmail emulation); Wed, 02 Sep 2015 13:38:51 -0400 [->] From: "Console and webGui login account" <[email protected]> [->] Date: Wed, 02 Sep 2015 13:38:51 -0400 [->] Subject: logfile for Wed Sep 2 13:38:51 EDT 2015 [->] total 4 [->] -rwxrw-rw- 1 root root 96 Sep 2 13:38 example_ssmtp.sh* [->] -rw-rw-rw- 1 root root 0 Sep 2 13:38 logfile [->] drwxr-xr-x 4 root root 80 Aug 26 21:03 notifications/ [->] drwxr-xr-x 2 root root 220 Aug 31 00:10 plugins/ [->] [->] . [<-] 250 OK id=************ [->] QUIT [<-] 221 hosting.empoweringmedia.net closing connection Link to comment
arobinson888 Posted September 5, 2015 Author Share Posted September 5, 2015 I've update my script and it now seems to be working, but I'm getting the error message ssmtp: 550 5.7.60 SMTP; Client does not have permissions to send as this sender I'm not sure how to fix this error. The sending e-mail address in my smtp settings (notifications) is the same e-mail address I have set up in this script. Link to comment
bonienl Posted September 5, 2015 Share Posted September 5, 2015 I've update my script and it now seems to be working, but I'm getting the error message ssmtp: 550 5.7.60 SMTP; Client does not have permissions to send as this sender I'm not sure how to fix this error. The sending e-mail address in my smtp settings (notifications) is the same e-mail address I have set up in this script. It is recommended to use the notify command to send notifications (including email), and not use another mail or smtp application. Link to comment
WeeboTech Posted September 5, 2015 Share Posted September 5, 2015 I've update my script and it now seems to be working, but I'm getting the error message ssmtp: 550 5.7.60 SMTP; Client does not have permissions to send as this sender I'm not sure how to fix this error. The sending e-mail address in my smtp settings (notifications) is the same e-mail address I have set up in this script. It is recommended to use the notify command to send notifications (including email), and not use another mail or smtp application. root@unRAIDb:/tmp# /usr/local/emhttp/webGui/scripts/notify notify [-e "event"] [-s "subject"] [-d "description"] [-i "normal|warning|alert"] [-m "message"] [-x] [-t] [add] create a notification use -e to specify the event use -s to specify a subject use -d to specify a short description use -i to specify the severity use -m to specify a message (long description) use -x to create a single notification ticket use -t to force send email only (for testing) all options are optional notify init Initialize the notification subsystem. notify smtp-init Initialize sendmail configuration (ssmtp in our case). notify get Output a json-encoded list of all the unread notifications. notify archive file Move file from 'unread' state to 'archive' state. notify does not look like it's capable of accepting stdin and sending that data. i.e. as in sending the log with a subject. Link to comment
WeeboTech Posted September 5, 2015 Share Posted September 5, 2015 I've update my script and it now seems to be working, but I'm getting the error message ssmtp: 550 5.7.60 SMTP; Client does not have permissions to send as this sender I'm not sure how to fix this error. The sending e-mail address in my smtp settings (notifications) is the same e-mail address I have set up in this script. for the ssmtp error, Looks like the smtp server requires more then mine did. Try adding a From: as it normally defaults to the root user. #!/bin/bash ls -l > logfile cat - logfile <<-EOF | ssmtp -v [email protected] From: [email protected] Subject: logfile for `date` EOF root@unRAIDb:/tmp# ./example_ssmtp.sh [<-] 220 hostingservice.empoweringmedia.net ESMTP Exim 4.84 Sat, 05 Sep 2015 09:47:43 -0400 [->] EHLO unRAIDb [<-] 250 HELP [->] STARTTLS [<-] 220 TLS go ahead [->] EHLO unRAIDb [<-] 250 HELP [->] AUTH LOGIN [<-] 334 ********* [->] *************************** [<-] 334 ********** [<-] 235 Authentication succeeded [->] MAIL FROM:<[email protected]> [<-] 250 OK [->] RCPT TO:<[email protected]> [<-] 250 Accepted [->] DATA [<-] 354 Enter message, ending with "." on a line by itself [->] Received: by unRAIDb (sSMTP sendmail emulation); Sat, 05 Sep 2015 09:47:42 -0400 [->] Date: Sat, 05 Sep 2015 09:47:42 -0400 [->] From: [email protected] [->] Subject: logfile for Sat Sep 5 09:47:42 EDT 2015 [->] total 4 [->] -rwxrw-rw- 1 root root 139 Sep 5 09:47 example_ssmtp.sh [->] -rw-rw-rw- 1 root root 0 Sep 5 09:47 logfile [->] drwxr-xr-x 4 root root 80 Sep 4 14:16 notifications [->] drwxr-xr-x 2 root root 280 Sep 4 23:56 plugins [->] drwx------ 2 root root 60 Sep 4 23:47 ssh-3GhthFJM2r [->] drwx------ 2 root root 60 Sep 4 23:30 ssh-mYwUqW0iyo [->] [->] . [<-] 250 OK id=********************-Rx [->] QUIT [<-] 221 hostingservice.empoweringmedia.net closing connection Link to comment
arobinson888 Posted September 5, 2015 Author Share Posted September 5, 2015 I've update my script and it now seems to be working, but I'm getting the error message ssmtp: 550 5.7.60 SMTP; Client does not have permissions to send as this sender I'm not sure how to fix this error. The sending e-mail address in my smtp settings (notifications) is the same e-mail address I have set up in this script. for the ssmtp error, Looks like the smtp server requires more then mine did. Try adding a From: as it normally defaults to the root user. #!/bin/bash ls -l > logfile cat - logfile <<-EOF | ssmtp -v [email protected] From: [email protected] Subject: logfile for `date` EOF root@unRAIDb:/tmp# ./example_ssmtp.sh [<-] 220 hostingservice.empoweringmedia.net ESMTP Exim 4.84 Sat, 05 Sep 2015 09:47:43 -0400 [->] EHLO unRAIDb [<-] 250 HELP [->] STARTTLS [<-] 220 TLS go ahead [->] EHLO unRAIDb [<-] 250 HELP [->] AUTH LOGIN [<-] 334 ********* [->] *************************** [<-] 334 ********** [<-] 235 Authentication succeeded [->] MAIL FROM:<[email protected]> [<-] 250 OK [->] RCPT TO:<[email protected]> [<-] 250 Accepted [->] DATA [<-] 354 Enter message, ending with "." on a line by itself [->] Received: by unRAIDb (sSMTP sendmail emulation); Sat, 05 Sep 2015 09:47:42 -0400 [->] Date: Sat, 05 Sep 2015 09:47:42 -0400 [->] From: [email protected] [->] Subject: logfile for Sat Sep 5 09:47:42 EDT 2015 [->] total 4 [->] -rwxrw-rw- 1 root root 139 Sep 5 09:47 example_ssmtp.sh [->] -rw-rw-rw- 1 root root 0 Sep 5 09:47 logfile [->] drwxr-xr-x 4 root root 80 Sep 4 14:16 notifications [->] drwxr-xr-x 2 root root 280 Sep 4 23:56 plugins [->] drwx------ 2 root root 60 Sep 4 23:47 ssh-3GhthFJM2r [->] drwx------ 2 root root 60 Sep 4 23:30 ssh-mYwUqW0iyo [->] [->] . [<-] 250 OK id=********************-Rx [->] QUIT [<-] 221 hostingservice.empoweringmedia.net closing connection That seems to have resolved the issue. Thank you very much! Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.