Linux 서버에서 매일 밤마다 실행되는 스크립트를 작성하여 mysqldump
각 MySQL 데이터베이스를 .sql 파일로 백업하고 압축 된 .tar 파일로 함께 패키지화했습니다. 다음으로 수행하려는 단계는 보관을 위해 해당 tar 파일을 전자 메일을 통해 원격 전자 메일 서버로 보내는 것입니다. 백업 텍스트 파일을 다음 mailx
과 같이 파이핑하여 본문에 원시 스크립트를 이메일로 보낼 수있었습니다 .
$ cat mysqldbbackup.sql | mailx backup@email.com
cat
mailx
수신자의 이메일 주소를 인수로 전달 하여 프로그램에 파이프되는 백업 파일의 텍스트를 에코합니다 .
이것이 내가 필요한 것을 달성하는 동안 한 단계 더 나을 수 있다고 생각합니다. 쉘 스크립트를 사용하거나 압축 된 .tar 파일을 보내는 전자 메일 메시지에 첨부 파일 로 보내는 방법이 있습니까? 헤더 데이터를 포함하고 종종 단어 줄 바꿈 문제가있는 매우 긴 전자 메일 메시지를 처리 해야하는 것보다 낫습니다.
답변
똥개 중 어느 것도 나를 위해 일하지 않았습니다. 이메일 주소가 첨부 파일의 일부라고 생각했습니다. 해야했다 :
echo "This is the message body" | mutt -a "/path/to/file.to.attach" -s "subject of message" -- recipient@domain.com
답변
또는 실패한 음소거 :
gzip -c mysqldbbackup.sql | uuencode mysqldbbackup.sql.gz | mail -s "MySQL DB" backup@email.com
답변
리눅스 버전에 따라 메일이라고 할 수 있습니다. 위의 @David를 인용하려면 :
mail -s "Backup" -a mysqldbbackup.sql backup@email.com < message.txt
또는 :
cat message.txt | mail -s "Backup" -a mysqldbbackup.sql backup@email.com
답변
를 보면 man mailx
mailx 프로그램에는 파일을 첨부 할 수있는 옵션이 없습니다. mutt와 같은 다른 프로그램을 사용할 수 있습니다.
echo "This is the message body" | mutt -a file.to.attach -s "subject of message" recipient@domain.com
mutt의 명령 행 옵션은로 표시 될 수 있습니다 mutt -h
.
답변
이 시나리오를 위해 만들어진 SendEmail을 사용합니다. 우분투 패키지로 제공되므로 사용할 수 있다고 가정합니다.
sendemail -f sender@some.where -t receiver@some.place -m "Here are your files!" -a file1.jpg file2.zip
http://caspian.dotconf.net/menu/Software/SendEmail/
답변
나는 mpack을 사용합니다.
mpack -s subject file user@example.com
불행히도 mpack은 ‘-‘를 stdin의 별칭으로 인식하지 않습니다. 그러나 다음 작업은 (쉘) 별칭 또는 스크립트로 쉽게 래핑 될 수 있습니다.
mpack -s subject /dev/stdin loser@example.com < file
답변
echo 'These are contents of my mail' | mailx -s 'This is my email subject' -a /path/to/attachment_file.log email_id@example.com