bash에서 컬러 파일을 읽을 수 있는 이메일로 변환하는 방법은 무엇입니까?

bash에서 컬러 파일을 읽을 수 있는 이메일로 변환하는 방법은 무엇입니까?

스크립트로 생성된 파일이 있는데 .를 사용하면 cat해당 파일을 첨부 파일로 보내려고 하면 올바르게 표시되지 않습니다. 아래에 표시된 것과 같습니다.

^[[33m================================================================================^[[m
                            ^[[34m172.29.0.110^[[m
^[[33m================================================================================^[[m
Filesystem              Size    Used    Avail   Use%    Mounted on
/dev/mapper/centos  109G   13G   91G  13% /
/dev/mapper/mpatha       1.6T  1.3T  277G  83% /var/lib/SQL
^[[33m================================================================================^[[m
                            ^[[34m172.29.8.110^[[m
^[[33m================================================================================^[[m
Filesystem              Size    Used    Avail   Use%    Mounted on
/dev/mapper/centos  117G  9.1G  102G   9% /
/dev/mapper/mpatha       1.6T  1.4T  109G  93% /var/lib/SQL
^[[33m================================================================================^[[m
                            ^[[34m172.29.16.110^[[m
^[[33m================================================================================^[[m
Filesystem              Size    Used    Avail   Use%    Mounted on
/dev/mapper/centos      117G   18G   94G  17% /
/dev/mapper/VG01-LV 1.5T  812G  590G  58% /var/lib/SQL
^[[33m================================================================================^[[m
                            ^[[34m172.29.26.110^[[m
^[[33m================================================================================^[[m
Filesystem              Size    Used    Avail   Use%    Mounted on
/dev/mapper/LogVol02  117G   22G   90G  20% /
/dev/mapper/mpathm    1.6T  1.1T  435G  71% /var/lib/SQL

파일을 생성하는 스크립트(스크립트의 일부)는 다음과 같습니다.

for IP in $(cat file.txt); do
    (echo -e  "\e[33m$LINE\e[m"
    echo -e "                            \e[34m$IP\e[m                                 "
    echo -e "\e[33m$LINE\e[m"
    echo -e "Filesystem\t\tSize\tUsed\tAvail\tUse%\tMounted\ton"
    ssh $SSH_ARG -q user@${IP} "df -Ph | egrep -iv 'filesystem|boot|tmpfs'") >> /disk_${DATE}_log
    echo -e "\e[33m$LINE\e[m"
    echo "Successful for $IP"
done

cat disk_${DATE}_log | mail -s "Disk space" [email protected]

색상을 생성하는 항목을 제거할 수 있지만 echo이 파일을 메일을 통해 제대로 보낼 수 있는 방법이 있는지, 아니면 메일 명령에서 이 문제를 해결할 수 있는 방법이 있는지 궁금합니다.

답변1

다음과 같은 요청된 작업을 수행할 수 있습니다.

  • 파일 변환ANSI 색상 탈출HTML로, 그리고

  • 생성된 HTML 파일을 첨부 파일로 보냅니다.

명령줄mail(또는mailx) 프로그램은 이 경우 그다지 유용하지 않을 수 있지만 다양한 버전이 있습니다(예:Mailx가 HTML 메시지를 보냅니다.). 그러나 사용 중인 메일의 특정 구현을 알지 못해도 다른(보다 예측 가능한) 도구는 잘 작동할 수 있습니다.

mutt적절한 뷰어를 사용하여 HTML 첨부 파일을 표시하도록 많은 메일 클라이언트(예: )를 구성할 수 있습니다. 예를 들어Mutt를 사용하여 HTML 이메일 읽기.

변환을 위해 다음과 같은 스크립트/프로그램이 있습니다."ansi2html"이라는 이름이 두 개 이상. 그 중 하나에 댓글을 달았죠화면 로그를 html로 변환, 이는 귀하에게 도움이 될 수 있습니다(참조스크립트에 링크).

첨부 파일을 보낼 때 단순화할 수 없다는 점을 기억하세요관로데이터는 메일 클라이언트로 전송되며 명령줄 매개변수는 다양합니다. 일부 토론은 mutt다음 사항에 초점을 맞췄습니다.Linux 명령줄을 사용하여 파일을 이메일 첨부 파일로 보내는 방법은 무엇입니까?

관련 정보