Список последних измененных или вновь созданных файлов в Linux.

Ответ narcisgarcia @ http://ubuntuforums.org/showthread.php?t=1482005 решил мою проблему.

Резюме: «Владелец каталога назначения должен быть« root », а группа / другие пользователи не могут иметь прав на запись».

0
26.04.2019, 12:48
2 ответа

Этого можно добиться несколькими способами, но вот пример на Python:

#!/usr/bin/env python

import os
import glob
import time
import subprocess

if __name__ == '__main__':
    mtimes = dict()

    while True:
        for f in glob.glob('*.txt'):
            if f not in mtimes:
                mtimes[f] = os.path.getmtime(f)

            if mtimes[f] != os.path.getmtime(f):
                print("File {} was modified. Executing restart.sh.".format(f))
                mtimes[f] = os.path.getmtime(f)                
                output = subprocess.check_output('./restart.sh')
                print(output)

        time.sleep(1)

Вероятно, вам нужно настроить его под свою среду:

  • glob.glob('*.txt')— шаблон поиска файлов, которые вы хотите отслеживать.
  • subprocess.check_output('./restart.sh')— это место, где вы вызываете скрипт. Он может находиться где-то еще.
  • time.sleep(1)— задержка (в секундах )между проверками.
0
28.01.2020, 03:46

Я бы выбрал inotifywait. Они смотрят на системные вызовы для создания, изменения, удаления, перемещения, и вы можете написать в оболочке, что делать при обнаружении

.
0
28.01.2020, 03:46

Теги

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