Мне нужно посмотреть, если файл изменился за последние 30 минут, и если он не изменился, Затем выйдите из скрипта.
Будет каталог со многими файлами на сервере SFTP, но мне нужно только проверить, есть ли файл, который изменился в течение 30 минут. Код для этой проверки ниже.
Сценарий будет работать как Cronjob каждую минуту или около того.
У меня есть простое предложение, если посмотреть, если файл изменился, но его невозможно запустить на сервере SFTP.
if [ $(find ./ -type f -mmin 30) ]
Моя версия Ubuntu составляет 20,04, и невозможно запустить SSH на SFTP.
Есть ли путь, поэтому я могу запустить, если приговор прямо на SFTP?
Вы не можете запустить такие выражения, как , если
или находят
через SFTP
. Вам нужно будет использовать SFTP
команды и проанализируйте информацию о себе от их вывода или использования Python
Pysftp
для программного обеспечения его самостоятельно.
Тем не менее, вы можете установить SFTP
Server и запустить найти
локально на установленном каталоге:
# Install sshfs on your localcomputer if needed
sudo apt install sshfs
# Mount the directory
mkdir sftpmnt
sudo sshfs -o allow_other -p 60022 user@server:/ sftpmnt/
# List all files changed within the last 30 minutes
find sftpmnt -mmin -30 -printf '%T+\t%p\n'
# Or check if any file changed within the last 30 minutes and do_something
if find sftpmnt -mmin -30 -print -quit | grep -q "." ; then
echo "Found new or modified file(s)"
do_something
fi