语法
if [ "ok" = "ok" ]
then
echo "qual"
fi
或者
if [ "ok" = "ok" ];then
echo "qual" //这里和其他语言的区别是没有分号
fi
这里面的条件判断式就是使用了 test命令判断
测试脚本
### 获取到 /dev/mapper/kylin-root 的磁盘使用空间的百分比前的数字
[root@centos ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/kylin-root
38G 4.9G 31G 14% /
tmpfs 933M 224K 933M 1% /dev/shm
/dev/sda1 976M 40M 886M 5% /boot
/dev/mapper/kylin-opt
19G 9.5G 7.8G 56% /opt
思路:去掉还有dev,File , opt内容的行,剩下的就是符合条件的行,再提取第四列,再用 % 作为分隔符提取第一列
###要cut的内容越短越容易cut到想要的结果。
[root@centos ~]# df -h |grep -v 'dev' |grep -v 'File' | grep -v 'opt'| awk '{print $4}'|cut -d "%" -f 1
14
###脚本
[root@centos ~]# cat 1.sh
#!/bin/bash
aa=$(df -h |grep -v 'dev' |grep -v 'File' | grep -v 'opt'| awk '{print $4}'|cut -d "%" -f 1)
if [ $aa -ge 10 ];then
echo "你好,美女" | mail -s "想你了" 1046851428@qq.com
fi
在centos 6.9下配置 发邮件的环境:
安装发邮件的所需的软件包
1、安装sendmail:
1) centos下可以安装命令:yum -y install sendmail
2) 安装完后启动sendmail命令:service sendmail start
2、安装mail
安装命令:yum install -y mailx
安装前换yum源以及配置注意点
换新的源,很多阿里云的源,163的源都有问题,要么访问不到,要么修改新源中的 vi :%s$release/7/ ,但是最终在install sendmail时会报错提示找不到内容
只有用下面的新源才能找到内容:
curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo
用了新源后
yum clean all && yum makcache 生成元数据不报错就行了
yum -y install sendmail正确安装结果
依赖关系解决
================================================================================
软件包 架构 版本 仓库 大小
================================================================================
正在安装:
sendmail x86_64 8.14.4-9.el6_8.1 base 717 k
为依赖而安装:
procmail x86_64 3.22-25.1.el6_5.1 base 162 k
事务概要
================================================================================
Install 2 Package(s)
总下载量:879 k
Installed size: 1.9 M
yum install -y mailx正确安装结果
依赖关系解决
================================================================================
软件包 架构 版本 仓库 大小
================================================================================
正在升级:
mailx x86_64 12.4-10.el6_10 updates 235 k
事务概要
================================================================================
Upgrade 1 Package(s)
总下载量:235 k
确定吗?[y/N]:
配置认证
安装好两个包以后启动服务
service sendmail start
创建一个 a.sh 认证文件,并给它执行权限
chmod +x a.sh
把文件中的对应的qq的内容换成163的内容就可以配置163邮箱的发送邮件
#!/bin/bash
##创建目录,用来存放证书
mkdir /root/.certs/
##向qq请求证书
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt
##添加一个SSL证书到证书数据库中
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
#添加一个Global 证书到证书数据库中
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
#列出目录下证书
certutil -L -d /root/.certs
cd /root/.certs/
#信任证书
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt
编辑 /etc/mail.rc内的配置
去QQ邮箱申请SMTP密钥
打开QQ邮箱-设置-账户-下翻找到SMTP开启服务,这里已经开启了,如果换个邮箱没开启SMTP需要开启
把这里的授权码填入下方的配置中,不是密码
set smtp-use-starttls
set smtp=smtp.qq.com
set from=自己的qq邮箱
set smtp-auth-user=自己的qq邮箱
set smtp-auth-password=授权码
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/root/.certs/
发送邮件
发送失败 重启下服务即可 service sendmail restart
echo “邮件内容” | mail -s “邮件标题” QQ号@qq.com
发送附件
echo “hello world” | mail -s “sh文件” -a 文件路径 QQ号@qq.com
https://blog.csdn.net/qq_42413449/article/details/80782018
https://blog.csdn.net/weixin_44352521/article/details/114227790
https://www.cnblogs.com/godfather007/p/10534016.html