需求

把所有的jobs ,从Linux Redhat 5 版本迁移到 Redhat 6+。

问题描述

mail 命令不能用了, 因为 Redhat 5 和Redhat 6 mail 命令不一样了。

下面是一个脚本可以兼容Redhat5 和RedHat6 版本

#!/bin/bash# usage ---
#
# 1). Example of sending mail with mutiple attachement and type of it is plain
#   sh mail_client.sh -a dumpy.xls -a dumpy1.xls -t "youDL.com" -s "mail subject" -c "mail content"
# 2). Example of sending mail with single attachement and type of it is plain
#   sh mail_client.sh -a dumpy.xls -t "youDL.com" -s "mail subject" -c "mail content"
# 3). Example of sending mail with link of report, type of it is HTML
#   sh mail_client.sh -t "youDL.com" -s "mail subject" -h true -c "<p> hahshs. </p><br><p>Click <a href=\"your_file_link.xlsx\">here</a> to download report.</p>"while getopts "a::t:s:c:n:h:" opt; docase $opt ina)REPORT_PATH+=($OPTARG);;t)EMAIL_DL=$OPTARG;;s)SUBJECT=$OPTARG;;c)CONTENT=$OPTARG;;h)IS_HTML=$OPTARG;; :)echo "Option -$OPTARG requires an argument."exit 1;;esac
doneecho "SUBJECT:"${SUBJECT}" EMAIL_DL:"${EMAIL_DL}" IS_HTML:"${IS_HTML}
echo "CONTENT:"${CONTENT}
echo "REPORT_PATH:"${REPORT_PATH}(for file in "${REPORT_PATH[@]}"; do echo "$file" "$(basename "$file")"; done)linux_version=$(cat /etc/redhat-release)if [[ $linux_version == *"5.11"* ]]; thenecho "Do RHEL 5 stuff, meaning old box"if [ "$IS_HTML" != "true" ];then# Here is to handle mutiple attachments(echo -e ${CONTENT};(for file in "${REPORT_PATH[@]}"; do uuencode "$file" "$(basename "$file")"; done)) | mail -s "${SUBJECT}" ${EMAIL_DL}else# Content of email is html type (echo "${CONTENT}") | mail -s "$(echo -e "${SUBJECT}\nContent-Type: text/html")" ${EMAIL_DL}fielseecho "Do stuff apart from RHEL5, meaning new box"if [ "$IS_HTML" != "true" ];then# Content of email is not html type comd="(echo -e ${CONTENT}) | mailx -s \"${SUBJECT}\" "# Here is to handle mutiple attachmentsfor file in "${REPORT_PATH[@]}"; do comd=${comd}" -a $file"donecomd=${comd}" \"${EMAIL_DL}\""echo ${comd}eval "$comd"else# Content of email is html type (echo "To: ${EMAIL_DL}";echo "Subject: ${SUBJECT}";echo "Content-Type: text/html";echo "MIME-Version: 1.0";echo "";echo "${CONTENT}";) | sendmail -tfifi

Linux mail 命令 不兼容 从 Redhat-release5 迁移到 Redhat-release6以上相关推荐

  1. Linux mail 命令参数

    linux mail 命令参数: 使用mail发邮件时,必须先将sendmail服务启动. mail –s "邮件主题" –c"抄送地址" –b "密 ...

  2. Linux mail命令使用和sendmail配置

    linux mail 命令参数: 使用mail发邮件时,必须先将sendmail服务启动. mail –s "邮件主题" –c"抄送地址" –b "密 ...

  3. linux mail 命令 (收发邮件)

    1. 如何查看linux的mailqueue $mailq $sendmail -bp $ll /var/spool/mqueue  这是mail队列存放的目录,可以将里面的文件删除来清空mailqu ...

  4. Linux mail 命令

    在Linux系统下mail命令的测试 1. 最简单的一个例子: mail -s test yangfang@fudan.edu.cn 这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有m ...

  5. 用linux mail命令发送邮件时指定发送人

    在linux下有一个mail命令可以用来收发邮件,但是默认情况下邮件的发送人为当前用户,有时候为了方便的在程序(比如perl脚本)中发送邮 件,那么就得指定特定的发送人,这个怎么办呢?在正常的发送命令 ...

  6. linux mail命令查看邮件/mail控制台

    目录 前言 收到邮件了 tail 命令查看邮件 mail命令查看邮件 进入mail控制台 帮助 邮件列表分页显示 邮件列表最后一页 阅读当前邮件 翻页 移动指针 前言 CentOS Linux rel ...

  7. linux mail命令详解,Linux mail邮件命令详解及实例

    在Linux系统下mail命令的测试 1. 最简单的一个例子: mail -s test yangfang@fudan.edu.cn 这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有m ...

  8. c语言strTrimed函数用法介绍,linux type命令用法_转

    在脚本中type可用于检查命令或函数是否存在,存在返回0,表示成功:不存在返回正值,表示不成功. $ type foo >/dev/null 2>&1 || { echo > ...

  9. linux检查邮件命令,Linux:mail的邮件收发及查看

    系统收到邮件都会保存在"/var/spool/mail/[linux用户名]"文件中. 在linux中输入mail,就进行了收件箱,并显示二十封邮件列表. 此时命令提示符为&quo ...

最新文章

  1. python字符串find函数-python常见字符串处理函数与用法汇总
  2. java c s测试_将Zlib Java与C进行基准测试
  3. 如何创建并发布Google Earth KML 地标文件?
  4. React 实现一个漂亮的 Table
  5. how does filter for list work in xml view
  6. 用SublimeText当Unity Shader的编辑器
  7. 基于短视频的人脸解析比赛
  8. 微信小程序官方demo下载地址
  9. 智搜盘点:来看看各大公司都推出了哪些机器人?
  10. mysql里cis_CIS MySQL存储库表修复过程
  11. 【电机学】绪论:基本电磁定律,铁磁材料特性
  12. 【现代密码学】大作业-RSA大礼包
  13. 体细胞选择区分癌基因和抑癌基因
  14. MySQL初始密码获取
  15. 云上PDF怎么删除页眉页脚_word页眉处理技巧:用VBA快速删除批量页眉页脚
  16. DataTable转换为ListT或者DataRow转换为T
  17. python实现千牛客服自动回复语_客服自动回复设置技巧,别再傻傻全部自己回复了...
  18. 什么是SDK什么是CDN
  19. mac 解决每次打开终端都要source的问题
  20. js小学生图区_js 图片区域可点击,适配移动端,图片大小随意改变

热门文章

  1. tomcat开启cgi
  2. Delphi 与 DirectX 之 DelphiX(39): TDIB.Sharpen();
  3. 如何跳过或去除“非正版Windows系统“信息
  4. 面试官系统精讲Java源码及大厂真题 - 16 ConcurrentHashMap 源码解析和设计思路
  5. Git如何进行分支合并
  6. 虚拟局域网——vlan (讲解+配置)
  7. vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多
  8. js 将多个对象合并成一个对象
  9. LeetCode 678 有效的括号字符串,常规栈思路
  10. js lottie 兼容 json、图片缓存问题、修改文字,图片