Проверьте, изменяется ли файл за последние 30 минут на SFTP через Bash

Мне нужно посмотреть, если файл изменился за последние 30 минут, и если он не изменился, Затем выйдите из скрипта.

Будет каталог со многими файлами на сервере SFTP, но мне нужно только проверить, есть ли файл, который изменился в течение 30 минут. Код для этой проверки ниже.

Сценарий будет работать как Cronjob каждую минуту или около того.

У меня есть простое предложение, если посмотреть, если файл изменился, но его невозможно запустить на сервере SFTP.

if [ $(find ./ -type f -mmin 30) ]

Моя версия Ubuntu составляет 20,04, и невозможно запустить SSH на SFTP.

Есть ли путь, поэтому я могу запустить, если приговор прямо на SFTP?

0
задан 4 March 2021 в 09:14

1 ответ

Вы не можете запустить такие выражения, как , если или находят через 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
0
ответ дан 18 March 2021 в 23:29

Другие вопросы по тегам:

Похожие вопросы: