shell脚本定时到源目录复制zip文件到目标目录
新建一个.sh的文件;如copyFile.sh
mkdir copyFile.sh
然后到文件里面写脚本
#!/bin/bash
# 定义源目录和目标目录
SOURCE_DIR="/data/test/fileSource1"
DEST_DIR1="/data/test/fileTarget11"
DEST_DIR2="/data/test/fileTarget12"
# 定义临时文件名前缀和后缀
TEMP_PREFIX="temp_"
TEMP_SUFFIX=".temp"
while true; do
# 遍历目录下的所有.zip文件
for file in "$SOURCE_DIR"/*.zip; do
# 检查文件是否存在
if [ -f "$file" ]; then
# 生成临时文件名
temp_file="$TEMP_PREFIX$(basename "$file")$TEMP_SUFFIX"
# 复制文件到目标目录并重命名
cp "$file" "$DEST_DIR1/$temp_file"
cp "$file" "$DEST_DIR2/$temp_file"
# 将文件名改回原始名称
mv "$DEST_DIR1/$temp_file" "$DEST_DIR1/$(basename "$file")"
mv "$DEST_DIR2/$temp_file" "$DEST_DIR2/$(basename "$file")"
# 删除原文件
rm "$file"
echo "处理完成文件: $file"
fi
done
# 等待一分钟后再次扫描
sleep 60
done
# echo "处理完成。"
可能遇到的问题
: /usr/bin/bash^M: bad interpreter: No such file or directory
解决办法
执行命令 which bash
将返回的路径替换掉脚本中第一行的 /bin/bash
注意不要有空格和回车
如果启动还有报这个错
执行
vim copyFile.sh
:set ff=unix
:wq!
启动
./copyFile.sh >filelog.log &
参考博客
https://www.jianshu.com/p/2f77d70d8762
https://blog.csdn.net/pengtgimust/article/details/81948605