shell 脚本入门学习--mqtt日志的简单实现
简介
由于项目需要,需将加油机与数据中心的数据进行日志的保存,通过mqtt的方式取到数据。
实现环境
阿里云(Ubuntu 16.04) + mosquitto
环境搭建
1.mossquitto安装(源码安转)
**下载链接 mosquitto-1.6.7
下载完成后,将安装包放入想要安装的目录。
解压安装安装包命令: tar -zxvf mosquitto-1.6.7.tar.gz
进入解压的文件夹
2.安装依赖
在make之前确认依赖存在
sudo apt-get install openssl
sudo apt-get install libssl-dev
sudo apt-get install openssl
sudo apt-get install uuid-dev
sudo apt-get install g++
3.安装
make
make install
添加用户
Useradd mosquitto
Passwd mosquitto
4.使用
4.1服务器模式
mosquitto -v
4.2客户端模式
进入client目录下
使用订阅
2.shell脚本创建
1.创建.sh结尾文件,进入vim编辑
脚本解释
#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。
date使用,获取系统时间,将日期设置为年-月-日格式
echo:shell中的输出相当与printf
在使用mosquitto_sub前,先将mosquitto_sub进程杀掉
nohup:nohup 是 no hang up 的缩写,就是不挂断的意思。
如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。
最后的&:使进程在后台运行
-F %X:以16进制输出
>符号:重定向,将nohup输出到自定义的文件下
2.赋予脚本可执行权限
chmod
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
chmod 777 savelog.sh
使用 ll查看结果
实现日志
crontable
crontable 命令,是在linux下的定时命令,适合进行长期的定时任务执行。
crontab -e
将savlog.sh每天0点执行一遍,形成日志。
到此需求就满足了,有何不足,欢迎指正。