自动检测磁盘容量并发送到指定邮箱的shell脚本
#!/bin/bash
from='12345678@163.com' #邮件发送的位置
smtp='smtp.163.com' #邮件服务器
smtpuser='12345678@163.com' #接受邮件的用户
smtppassword='YVQAIHJQUBLXTIMS' #邮箱授权码
sed -i '$aset from='"${from}"'' /etc/mail.rc
sed -i '$aset smtp='"${smtp}"'' /etc/mail.rc
sed -i '$aset smtp-auth-user='"${smtpuser}"'' /etc/mail.rc
sed -i '$aset smtp-auth-password='"${smtppassword}"'' /etc/mail.rc
sed -i '$aset smtp-auth=login' /etc/mail.rc
log='/var/log/disk' #查询结果在本地保存的位置
disk=/dev/sda1 #要查询的磁盘
a=`df -h | grep $disk | awk '{ print $5 }' | cut -d "%" -f 1` #查询磁盘使用率
o=$((100-$a)) #计算磁盘剩余空间
echo "磁盘空间已使用 $a% 磁盘剩余空间为 $o%" > $log #输出磁盘一用空间和剩余空间到
指定文件
cat $log | mail -s '磁盘剩余空间' $from #发送邮件
#crontab -e 添加定时执行
通过shell脚本实现远程安装服务及状态判断
#!/bin/bash
#---------------------------------------------------
# 管理端和被管理端都执行ssh-keygen -t rsa生成秘钥 -
# 被管理端再执行ssh-copy-id root@管理端ip 传输秘钥 -
#---------------------------------------------------
#管理端ip
masterip=192.168.1.1
#被管理端ip
ip=192.168.1.2
#判断脚本路径
panduan=/root/2.sh
#创建服务信息存放目录
mkdir /服务状态
#传输SSH密钥
ssh-copy-id root@$ip
#传输服务判断脚本到另一台机器
scp /root/2.sh root@$ip:/$panduan
#远程登陆另一台主机,把下面命令输出的内容放到黑洞里。配置网络Yum源,安装epel源,安装nginx,开启nginx,执行服务判断脚本判断服务状态并且把判断结果传输回本机,登出。
ssh root@$ip > /dev/null << eeooff
rm -rf /etc/yum.repos.d/
mkdir /etc/yum.repos.d/
touch /etc/yum.repos,d/CentOS-Base.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install epel-release
yum -y install nginx
systemctl start nginx
sh /$panduan | grep 服务 > /服务启动状态
scp /服务启动状态 root@$masterip:/服务状态/被管理端服务状态
rm-rf /服务启动状态
exit
eeooff
echo "回到本机"
#删除文件夹
rm -rf /etc/yum.repos.d/
#创建一个Yum的文件夹
mkdir /etc/yum.repos.d/
#创建一个Yum的文件
touch /etc/yum.repos.d/CentOS-Base.repo
#配置网络yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#安装epel源
yum -y install epel-release
#安装nginx
yum -y install nginx
#开启nginx
systemctl start nginx
#执行服务判断脚本
sh $panduan | grep 服务 > /服务状态/管理端服务状态
--------------------------------------------------------------
#!/bin/bash
systemctl status nginx
a=`echo $?`
if
[ $a -eq 0 ]
then
echo "服务已启动"
else
echo "服务未启动"
fi