모두 도움을 주셔서 감사합니다...이 작업은 쉬울 것입니다.
내 스크립트는 그것을 stdout/terminal에 완벽하게 인쇄합니다. 스크립트에서는 아름답지만 아래에서는 그렇지 않습니다...????:
# Print to stdout
echo "------- CAPACITY TEST FAILED -------"
echo -n " SYSTEM NAME: " ; uname -n
echo -n " USER DETAIL: " ; whoami
echo " PARTITION: $PART "
echo " USED SPACE: $USEDSPC "
echo " THRESHOLD LIMIT OF $THRESH% EXCEEDED"
echo "------------------------------------"
나는 많은 mailx 옵션/형식을 시도했지만 약간의 "행복한 잔치"가 나타납니다... 어떤 도움이라도 좋을 것입니다.
저는 Red Hat 서버를 어떤 식으로든, 모양이나 형태로 변경할 수 없습니다. 그리고 솔직히 그들은 제가 그것에 대해 숨쉬는 것을 원하지 않습니다. 제 임무는 Red Hat 서버에 관한 스크립트를 작성하는 것입니다! 1
답변1
일부 표준 출력을 mailx의 표준 입력으로 연결하면 이메일 내용으로 전송됩니다.
echo "test body" | mailx -s test_subject [email protected]
스크립트가 실행되어 해당 출력만 출력하는 경우 다음을 통해 원하는 결과를 얻을 수 있습니다.
/path/to/script | mailx -s subject_here [email protected]
이 bash가 더 큰 스크립트의 일부인 경우 위의 모든 줄을 하나의 큰 에코로 결합하여 모두 이메일로 보낼 수 있습니다.
echo -e "------- CAPACITY TEST FAILED -------\n SYSTEM NAME: $(uname -n)\n USER DETAIL: $(whoami)\n PARTITION: $PART \n USED SPACE: $USEDSPC \n THRESHOLD LIMIT OF $THRESH% EXCEEDED\n------------------------------------" | mailx -s subject_here [email protected]
답변2
스크립트에서 "("")"를 추가하여 하위 쉘을 생성하고 해당 출력을 파이프할 수도 있습니다.
(echo "------- CAPACITY TEST FAILED -------"
echo -n " SYSTEM NAME: " ; uname -n
echo -n " USER DETAIL: " ; whoami
echo " PARTITION: $PART "
echo " USED SPACE: $USEDSPC "
echo " THRESHOLD LIMIT OF $THRESH% EXCEEDED"
echo "------------------------------------" ) | mailx ...