我正在编写 bash 脚本,需要将 60 个文件移动到一个文件夹,然后 curl api 调用,再等待一个小时来移动这 60 个文件并执行相同的操作。所以基本上我写了两个脚本
**script 1 : scan the folder and move one file every min to the destination folder.**
#/bin/bash
#for (( c=1; c<=5; c++ ))
#do
# echo "Welcome $c times"
XMLS="/home/administrator/app/public/2019-02/*"
for f in $XMLS
do
echo "Processing $f file..."
# take action on each file. $f store current file name
# ls $f
cp $f /home/administrator/app/public/xml/
mv $f /home/administrator/Done/
sleep 60
done
#done
脚本2:#/bin/bash
curl http://IP$:3000/upload-video
请帮助我了解我是否可以使用 pgrep 或任何其他命令来确保它每小时触发一次。
谢谢
答案1
定期执行命令的常用方法是使用 cron。要在指定时间后终止命令,可以使用该timeout
命令。
将两者放在一个 cron 作业中(crontab -e
):
23 * * * * /usr/bin/timeout 59m /usr/bin/curl ...
每小时运行/usr/bin/curl ...
一次(每小时 23 分),如果仍在运行,则在 59 分钟后终止。