bashでカラーファイルを読むことができるEメールに変換するには?

bashでカラーファイルを読むことができるEメールに変換するには?

スクリプトで生成されたファイルがありますが、.を使用すると、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」という名前が複数。そのうちの1つにコメントしました。画面ログをhtmlに変換、これはあなたに役立ちます(参照スクリプトへのリンク)。

添付ファイルを送信すると単純化できないことを覚えておいてください管路データはメールクライアントに送信され、コマンドラインパラメータはさまざまです。いくつかの議論はmutt次の点に焦点を当てています。Linuxコマンドラインを使用してファイルを電子メールの添付ファイルに送信する方法は?

関連情報