Почему вы хотите объединить все эти файлы в один файл?
Если вы хотите передать их программе, которой нужен stdin, вы можете сделать следующее:
cat *.csv | prog
или любой другой метод объединения, упомянутый ранее.
Если программа ожидает именованный файл в качестве входного, сделайте что-то вроде этого:
mkfifo p
cat *.csv > p &
prog p
Если вам нужен один файл, потому что один файл легче резервировать, тогда может быть полезно все скрепить смолой. Если вы хотите читать файлы, не распаковывая их, тогда вы можете превратить tar-файл в fs на основе fuse.
Все, что вам нужно, это incron
. Сначала установите пакет incron
, если у вас Ubuntu/Debian :
sudo apt install incron
или используйте команду для Red Hat/Fedora:
sudo yum install incron
Откройте файл /etc/incron.allow
в вашем любимом текстовом редакторе -пусть будетvim
:
vim /etc/incron.allow
и добавьте новую строку с вашим именем пользователя (предположим, что это bob
), чтобы разрешить ему использоватьincron
:
bob
Затем откройте incron
редактор правил:
incrontab -e
и добавьте следующую строку:
/home/userid/drop/ IN_CREATE mv /home/userid/drop/$# /home/userid/current/
где $#
— это incron
, встроенный -в подстановочный знак, что означает имя недавно удаленного файла резервной копии, обнаруженного incron
.
Чтобы проверить созданное правило, добавьте файл в каталог /home/userid/drop/
и проверьте, не был ли удаленный файл перемещен в каталог /home/userid/current/
. Дополнительно проверьте системный журнал:
tail /var/log/syslog
Периодическое cron
задание не подходит, так как оно запускается только изредка, в то время как процесс, реагирующий на изменения inode, должен выполняться все время. Должно быть достаточно @reboot
задания, которое запускает процесс, который (надеюсь )будет работать вечно.
$ crontab -l
@reboot /home/jhqdoe/job
$ cat job
#!/bin/sh
dir=/home/jhqdoe/drop/
target=/home/jhqdoe/current/
inotifywait -m "$dir" --format '%w%f' -e create \
| while read file; do mv -- "$file" "$target"; done
$ sudo reboot
Демон запуска, управляемый системой инициализации, вероятно, был бы лучшим вариантом, если это возможно, поскольку его легче перезапустить в случае сбоя задания по ряду причин.