2014-04-16 2 views
2

Linux OS 2.1입니다. 이러한 서버에는 mailx 또는 uuencode와 같은 옵션이 구성되어 있지 않습니다. 내 목표는 하루 이내에 업데이트 된 디렉토리에서 파일 목록 (날짜와 시간 포함)을 전자 메일로 보내는 것입니다. 나는 그것을 할 수 있도록 스크립트를 만들었지 만 이메일을 수신 할 때 모든 라인은 하나의 연속 출력으로 나타납니다. 출력에 중단이 없습니다. Outlook은 줄 바꿈을 무시합니다. 이제이 목록은 일부 큰 사용자에게 전달되어야하며 줄 바꿈을 무시하기 위해 Outlook 설정을 수정하도록 요청할 수는 없습니다. 이것은 내가 사용하는 스크립트에서 얻을 수 있습니까Linux의 전자 메일 디렉토리 목록

이것은 내가 사용하고있는 스크립트입니다.

!/bin/bash 
dir=/path-to-dir 
cd $dir 
find . -maxdepth 1 -type f -mtime -1 -exec ls -lrth {} \;> /tmp/filelist 
cat /tmp/filelist | awk -F/ '{print $1,$2}' |awk '{print $6,$7,$8,$10}' | mail -s "Today's Directory List" [email protected] 

이 디렉토리 목록을 하루에 한 번 보내므로이 스크립트를 실행하도록 cronjob 작업을 설정합니다. 첨부 파일로 파일 보내기를 시도했지만 uuencode가 서버에서 confiugred되지 않았습니다. 따라서이 문제에 대한 도움을 찾고 있습니다.

감사

+0

참조 된 질문에서 다양한 MUA의 예를 찾을 수 있습니다. – devnull

+0

내 항목을 편집 해 주셔서 감사합니다 devnull. 내 쿼리를 게시하기 전에이 포럼에 대한 광범위한 검색을 수행했습니다. 당신이 첨부 파일에 대해 제안한 URL, 나는 그것을 시도했습니다. 그러나 'mutt'도 인식되지 않습니다. – user3542284

+0

그 게시물에는'mutt'와는 다른 예제가 포함되어 있습니다. 'mail','mailx'를 사용하여 ... – devnull

답변

0

문제가 유닉스와 윈도우 사이의 줄 끝 문자 차이가있을 수 있습니다.

awk '{print $6,$7,$8,$10}' 

에 :

awk '{print $6,$7,$8,$10,"\r"}' 

을하고 도움이되는지 확인 변경해보십시오.

+0

안녕하세요 .. 답장을 보내 주셔서 감사합니다 ... 귀하의 제안을 시도 ..하지만 그 중 하나가 작동하지 않았다 :-( – user3542284

0

Add 2 extra spaces at the beginning of each line to trick Outlook into not removing line-breaks. 이 작업은 파이프 라인의 마지막 awk에서 쉽게 수행 할 수 있습니다.

는 그것은 "\r"을 포함 아마도 가치뿐만 아니라, 다른 답변에서 제안하는 그래서 전망 아마 기대 CR-LF 라인 종결이있다.

+0

선생님, 당신은 천재입니다. 그것이 효과가있었습니다. 내 문제를 해결하는 데 도움이 http : //stackoverflow.com/questions/2099471/add-a-prefix-string-to-beginning-of-each-line – user3542284

0

그래서이 스크립트는 저에게 잘 돌아가고 있습니다. 전망을 속이기 위해 앞에 여분 공간을 사용하도록 제안한 Emmet에게 감사드립니다.

!/빈/bash는
DIR =/경로에-DIR
CD를 $ dir을
발견. -maxdepth 1 -type f -mtime -1 -exec ls -lrth {} \; | awk -F/'{print $ 1, $ 2}'| 파일 목록
awk '$ 0 = ""$ 0 "/ tmp/filelist> /tmp/list.txt
mail -s"awk'{인쇄 $ 6, $ 7, $ 8, $ 10 " 오늘의 전화 번호부 목록 "[email protected]

다시 한번 감사드립니다.

관련 문제