自动轮询文件夹,检查文件不在变化后将文件挪走

Posted wenxuechaozhe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动轮询文件夹,检查文件不在变化后将文件挪走相关的知识,希望对你有一定的参考价值。

业务需求

通过文件推送至源目录,进行轮询检查文件是否已经推送完毕,推送完毕后将文件推送至指定目录。

执行思路

通过定时任务进行巡检文件夹,判断文件夹大小不再发生改变后,进行相关业务处理

代码示例

#!/bin/bash

#源目录
sourceURL="/Volumes/MacBookProHD/Soft"
#目标目录
targetURL="/Users/wenxuechao/Desktop"
#初次检查文件大小
totalSizeFirst=0
#再次检查文件大小
totalSizeSecond=0

#校验文件夹是否存在
function check()
	if [[ -d $sourceURL ]]; then
		echo "the file is exist."
	else
		exit 0
	fi

	if [[ -d $targetURL ]]; then
		echo "the file is exist."
	else
		exit 0
	fi


#初次获取源文件大小
function getSizeFirst()
	totalSizeFirst=`du -s $sourceURL | awk 'print $1'`


#再次获取源文件大小
function getSizeSecond()
	totalSizeSecond=`du -s $sourceURL | awk 'print $1'`


#校验文件是否传输完毕
function fileCheck()
	for (( i = 1; i > 0; i++ )); do
		getSizeFirst
		sleep 10
		getSizeSecond
		if [[ $totalSizeFirst -eq $totalSizeSecond ]]; then
			echo "the file is finished"
			break
		fi
	done


#业务处理单元
function business()
	echo "start doing your business..."
	#mv $sourceURL/aaa* $targetURL/aaa
	#mv $sourceURL/bbb* $targetURL/bbb
	#mv $sourceURL/ccc* $targetURL/ccc


#主函数
function main()
	fileCheck
	business


#脚本执行
main

经测试方案已通过,实现各自的业务单元即可。

以上是关于自动轮询文件夹,检查文件不在变化后将文件挪走的主要内容,如果未能解决你的问题,请参考以下文章

无需轮询即可检测 PHP 中的文件更改

在jsp中重复自动轮询数据库

RPA应用场景-自动轮询汇总报表

学习记录004-目录与文件扩展名

当文件存储在列表或对象中时,为什么文件的上次访问时间会发生变化?

AngularJs:如何检查文件输入字段的变化?