Как выполнить cronjob только тогда, когда файл больше определенного размера? - PullRequest
0 голосов
/ 14 марта 2020

Следующий скрипт (благодарность Ромео Нинову) выбирает самый последний каталог и выполняет операцию cp:

dir=$(ls -tr1 /var/lib/test|tail -1)
cd /var/lib/test/$dir && cp *.zip /home/bobby/

Пожалуйста, смотрите: Как использовать cronjob, когда другая программа делает команды в cronjob терпят неудачу? для предыдущего вопроса.

Я хотел бы изменить это так, чтобы cp происходило только в том случае, если файл .zip больше определенного размера байта, например, 28 000 байтов. Если файл .zip меньше, то ничего не копируется.

Как и раньше, это произойдет в /var/lib/test/**** (где **** изменяется от 0000 до FFFF и увеличивается с каждым днем).

Спасибо!

1 Ответ

1 голос
/ 14 марта 2020

Вы можете переписать свой скрипт следующим образом:

dir=$(ls -tr1 /var/lib/test|tail -1)
cd /var/lib/test/$dir
for i in *.zip
 do
 if [ "$(stat --printf="%s" $i)" -gt 28000 ] 
  then cp $i /home/bobby
 fi
done
...