网站开发 ip6,山东省城乡与建设厅网站首页,厦门网站制作费用,如何写一个微信小程序需求背景
对接客户中某个上游为外包系统#xff0c;外包系统每日推送压缩文件至指定文件夹下#xff0c;文件格式为YYYYMMDD_RegReport.zip。由于每日采集文件#xff0c;无法对接压缩包内文件#xff0c;需要将推送的压缩文件每日解压为文件夹
需求分析
与客户沟通后外包系统每日推送压缩文件至指定文件夹下文件格式为YYYYMMDD_RegReport.zip。由于每日采集文件无法对接压缩包内文件需要将推送的压缩文件每日解压为文件夹
需求分析
与客户沟通后需求内容如下 压缩包解析后放在当前目录下即可 解压后文件保留 多次推送特殊情况可以手动解压 当天晚上推送当天的文件如20231010推送的文件夹为20231010__RegReport.zip
处理方案
这里显然需要处理俩件事情解压至指定文件夹和定时调度处理。
解压
格式为zip就用简单的unzip命令这里唯一比较麻烦的地方就是每日推送是根据日期做推送所以需要考虑每日不同的压缩包名称这里用linux自带的时间做每日匹配
#将压缩文件 YYYYMMDD_RegReport.zip 在指定目录 /tmp下解压缩如果已有相同的文件存在要求 unzip 命令不覆盖原先的文件
unzip -n $(date %Y%m%d_RegReport.zip) -d /tmpLINUX定时调度处理
Linux crontab 是用来定期执行程序的命令。
当安装完成操作系统之后默认便会启动此任务调度命令。
crond 命令每分钟会定期检查是否有要执行的工作如果有要执行的工作便会自动执行该工作。
PS这一块在我理解就是linux自带了调度器调度通过corn表达式来做定时调度。
具体步骤
开启 crond 服务定时任务 启动服务
systemctl start crond添加、查看定时任务 创建定时任务文件夹
mkdir /home/tybs/scheduledUnzipFile传入定时任务文件脚本内容如下内部文件夹名称和cron表达式需要自行配制
* * * * * sh /home/tybs/corntest/scheduledUnzip.sh使用 crontab 添加定时任务命令如下
crontab /home/tybs/scheduledUnzipFile/scheduledUnzip.cron查看定时任务是否添加成功
crontab -l若有如下展示则证明添加成功
添加解压缩脚本 创建解压缩执行脚本传入解压缩脚本脚本内容如下文件夹目录自行补充。若有删除原先文件或指定目录请自行补充
unzip $(date %Y%m%d_RegReport.zip)验证方案 查看压缩包是否被解压缩成功
查看定时任务执行日志 通过root用户进行查询定时任务执行日志
tail -300f /var/log/cron可通过执行记录判断脚本是否正常被调用
若有报错则提示在日志内部请根据报错解决问题 参考了许多博客才做出这么简单的东西感谢曾经的前行者。
LINUX定时任务实现方案
Linux crontab 命令
踏实一些不要着急你想要的岁月都会给你小吴加油