LINUX.ORG.RU
ФорумAdmin

скрипт проверки каталога и субкаталогов на наличии любых файлов?

 , ,


0

1

Приветствую, господа ( которые пока ещё не в Париже :)) )!

не подскажет ли кто, как в скрипте организовать проверку на наличие в каталоге и его подкаталогах файлов? если файлы есть - их список отсылаем мейлом мне.

вроде как финдом такое можно организовать, но экспресспоиск выдал только рецепты на поиск на наличие кнкретных файлов, мне же надо на любые- т есть, есть файл \ ы там, или их нет....?

$ find /path -type f

/thread

anonymous
()
Ответ на: комментарий от barberry

ок, большой сэнкс вам обоим! при -type f ( files) и без маски\ уточнений, стал быть, любые файлы будет выводить?

wisedraco ★★
() автор топика
Ответ на: комментарий от wisedraco

любые файлы будет выводить?

нет. только обычные файлы

teod0r ★★★★★
()
Ответ на: комментарий от slowpony

в принципе ж схоже как с -type f ? я теперь не могу понять, как с файнда организовать вывод дабы каждый файлнейм с путём в новой строке был.... и как вывод скормить счётчику файлов....

find . -type f |ls -1 |wc -l

возвращает весь листинг рабочего каталога, и его цыфры, то есть ls -1 выполяется в текущем каталоге вместо того, чтобы ввод брать с поиска... :\

wisedraco ★★
() автор топика
Ответ на: комментарий от wisedraco

как с файнда организовать вывод дабы каждый файлнейм с путём в новой строке был

$ mkdir test
$ touch test/{file1,file2,file3}
$ find ./test -type f
./test/file2
./test/file1
./test/file3



А он и так в новой строке, ничего не надо организовывать.


как вывод скормить счётчику файлов

find /path -type f | wc -l
slowpony ★★★★★
()
Ответ на: комментарий от slowpony
странно
мне на мыло в результате отработки сего блока:


 newfiles=`find /PD_nfs/DWDSAT -type f -newer /PD_nfs/DWDSAT/.my_marker  2>/dev/null`
  touch /PD_nfs/DWDSAT/.my_marker
  echo «main cycle»
  if [ -n «$newfiles» ]; then
    count=$( $newfiles | cat | wc -l)
    echo «$(tput setaf 2) found files $newfiles $(tput sgr 0)»
    echo «working directory is: » $(pwd);
    echo " current date is: " $(date);
    echo " numbers: " $count;
    body=" Admin, we have new files on DWDSAT! \\n
     last incoming files was: \\n
     $newfiles" ;
    echo -e $body | mail -S smtp=8.8.8.8 -S from=email@mail.com -s «New Files on DWDSAT on server»   $address;

приходит такое:
 [img]https://preview.ibb.co/fXwCtT/dwd_kmail.png[/img]
? :-O

wisedraco ★★
() автор топика
Ответ на: комментарий от slowpony

по моей задумке оно должно было упорядочивать файлнеймы, дабы они одном столбцом шли.

убрал кат, скрипт за эту строчку пишет что «permission denied» теперь. вообще непонятно...:\

wisedraco ★★
() автор топика
Ответ на: комментарий от slowpony

да нет, есть wc -l убрать, никакой ругани нет. скрипт от рута запускается .... удивительно.

и, кстати, файлов там куча, но в еррорс только первый из списка за прогон попадает, и счётчик кажет 0 в конце....:

./newfiles_test2.scr: line 17: /PD_nfs/DWDSAT/egrr/Z__C_EDZW_20180606215904_fax01,egrr_bhv_nt_p_000024_000500_201806061800_EGRR.tiff: Permission denied

какого чёрта...?:-O

wisedraco ★★
() автор топика
Ответ на: комментарий от slowpony
 newfiles=`find /PD_nfs/DWDSAT -type f -newer /PD_nfs/DWDSAT/.my_marker  2>/dev/null`
  touch /PD_nfs/DWDSAT/.my_marker
  echo "main cycle"
  if [ -n "$newfiles" ]; then
    count=$($newfiles | wc -l)

вот. а 17. строка у нас : count=$($newfiles | wc -l) - именно на неё ругань по поводжу пермишн денайд.

можт я там неправильно переменную $newfiles использую? может как то по другому её содержимое в wc передавать надобно? :-O

wisedraco ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.