day21-定时表白
1.每日复盘与今日内容
1.1复盘
- 定时任务格式
- 定时备份
- 定时巡检
- 脚本书写与测试
1.2今日内容
- 定时任务故障案例
- 路径的问题
- 定向到空的问题
- 定时表白
2.故障案例
PATH的核心作用:
告诉Shell在哪里查找你输入的命令对应的可执行程序文件。 简单说,它就是操作系统查找命令的“地址簿”或“地图”。
上面的输出表示,当你在终端输入一个命令时,系统会按顺序在以下目录中查找:
- /usr/local/sbin
- /usr/local/bin
- /usr/sbin
- /usr/bin
- /root/bin
- /root/bin
2.1定时任务中命令路径的问题
1.PATH环境变量
- 环境变量 系统运行中可以在绝大部分直接使用的变量(系统创建)
- PS1控制命令行格式(是否配置颜色,样式)
- PATH命令的位置:ls
2.定时任务运行命令或脚本
- 故障现象:
1️⃣脚本或命令在命令行直接运行时
2️⃣⚠️脚本或命令写入到定时任务中无法执行或输出命令找不到提示
- 原因:
1️⃣定时任务运行命令或脚本的时候PATH只有/bin/和/usr/bin没有/sbin/或其他路径
2️⃣导致定时任务运行命令或脚本,/bin/以外的命令,无法识别,提示command not found命令找不到.
解决:
- 针对特点的命令使用绝对路径。不推荐,命令较少可以这样做
- 推荐方法:
1️⃣在脚本开头重新定义 `export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin`
2️⃣在脚本开头写入source /etc/profile
2.2 定向到空问题
- 命令或脚本定向到空>/dev/null 2>&1或追加到文件>>/var/log/test.log 2>&1
- 邮件服务开启postfix,以邮件形式发送给root.
- 没有开启,输出到临时文件(小文件)--->inode不足。
命令 | 作用 |
---|---|
bash -x 文件路径 | 详细看执行脚本中的过程 |
3.定时表白
发送表白邮件
注:以下均为测试邮箱,自己实践时只需将用户修改即可。
1.发送测试
麒麟/centos
yum install -y mailx sendmail mail -s 每日表白 youjiu_linux@qq.com </etc/hostsecho oldboy |mail -s 每日表白 youjiu_linux@qq.com
2.配置发件人
163邮箱做为发件人:邮箱,授权码,邮件服务器地址
邮箱:lidao996@163.com
授权码:XXXXXXXXXXXXXXX
邮件服务端地址: smtp.163.com
qq收件人
- 授权码如何创建?
注册并登录网易邮箱,将SMTP服务开启,获得授权码
- Linux配置vim /etc/mall.rc postfix服务开启
#将以下内容写到最后
cat >>/etc/mail.rc <<EOF
set from=lidao996@163.com
set smtp=smtp.163.com
set smtp-auth-user=lidao996@163.com
set smtp-auth-password=BGRCTLKQ
set smtp-auth=login
EOF
- 配置内容
#vim /etc/mall.rc修改
set from=lidao996@163.com 配置发件人邮箱
set smtp=smtp.163.com 配置使用163发送邮件 qq邮件服务器 smtp.qq.com
set smtp-auth-user=lidao996@163.com 用户名:邮箱名字
set smtp-auth-password=授权码 T 授权码,不是邮件的密码,需要登录邮箱后开启或申请.
set smtp-auth=login 认证形式login
- 发送内容
cat /etc/hostname | mail -s 跟我一起去逃避~~~ xxxxx@qq.com
#内容 标题 接收人
3.巡检脚本与邮件发送结果
- 调整现有脚本内容
- 执行巡检
- 通过cat/echo写入到文件
- 输出文件内容并通过mail命令发送邮件.
再之前的脚本加入如下内容,再修改将之前的输出到屏幕上改为输出到文件中再将文件发到你的邮箱--即可达到每天将巡检内容直接发到你的邮箱上
- 发送附件
命令 | 作用 |
---|---|
mail -a 邮箱 | 发送标题到指定邮箱 |
cat /tmp/result.txt | mail -s 标题 -a /tmp/result.txt xxxxx@qq.com
- 写入定时任务
crontab -e#写入以下内容
#4.定时巡检并发送邮件
00 00 * * * bash /server/scripts/check_system.sh > /dev/null 2>&1
4.api
- crul访问调取
https://www.tianapi.com/
1.进入网站,选择自己想要风格,申请接口-->测试请求-->同步生成调试代码
2.点击curl复制以下命令到Linux命令行
3.我只想输出文字,于是使用awk
4.发现及时提取还会有其他东西
5.使用crul -s(silent--安静模式:不显示进程信息)
不重要
5.今日总结
- 定时任务案例。
- 发送邮件。
- api接口。