Olej писал(а):Там есть насколько разнообразных составляющих проблем в составе общей проблемы...
Ещё задача из того же комплекса:
- забрасывать на сервере файлы-изображения в
заданный каталог...
-
с сохранением имён исходных файлов, которыми наполняется каталог.
Не хотелось для этого делать специальное приложение - обойдёмся утилитами Linux... (nc, tar, gzip)
- передаём файлы по сети скриптом known_cli_add:
Код: Выделить всё
#!/bin/bash
if [ $# -eq 0 ]
then
echo "using: $1 <file1 file2 ...>"
exit 1
fi
PORTk=54321
for f
do
tar -czf- "$f" | nc 87.249.221.249 $PORTk
echo "$f file sent"
done
exit 0
- на приёмном, серверном хосте работает принимающий скрипт:
Код: Выделить всё
#!/bin/bash
if [ $# -eq 0 ]
then
echo "using: $1 <known faces directory>"
exit 1
fi
cd $1
if [ $? != 0 ]
then
exit 2
fi
PORTk=54321
while [ 0 ]
do
nc -l -p $PORTk | tar -xzf- 2>/dev/null
if [ $? != 0 ]
then
rm -f * 2>/dev/null
fi
done
Запускаем на сервере 87.249.221.249:
Код: Выделить всё
android@android-vm:~/FaceDL/cloud$ ./known_srv_add known2
...
Код: Выделить всё
android@android-vm:~/FaceDL/cloud$ tree known2
known2
0 directories, 0 files
Пересылаем файлы с клиента:
Код: Выделить всё
olej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL/cloud$ ./known_cli_add Egor1.2.jpg Olena3.4.jpg
Egor1.2.jpg file sent
Olena3.4.jpg file sent
Они появляются на сервере в нужном каталоге:
Код: Выделить всё
android@android-vm:~/FaceDL/cloud$ tree known2
known2
├── Egor1.2.jpg
└── Olena3.4.jpg
0 directories, 2 files
android@android-vm:~/FaceDL/cloud$ ls -l known2
total 44
-rw-rw-r-- 1 android android 23454 Жел 12 18:06 Egor1.2.jpg
-rw-rw-r-- 1 android android 20381 Жел 12 18:20 Olena3.4.jpg
Таким образом можем
добавлять сколько угодно в каталог эталонов...
Для очистки каталога (тем же серверным скриптом) имеем другого клиента known_cli_clean:
Код: Выделить всё
#!/bin/bash
if [ $# -ne 0 ]
then
echo "using: $0"
exit 1
fi
PORTk=54321
echo "" | nc 87.249.221.249 $PORTk
if [ $? == 0 ]
then
echo "all filed deleted"
fi
exit 0
Выполняю очистку:
Код: Выделить всё
olej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL/cloud$ ./known_cli_clean
all filed deleted
На сервере:
Код: Выделить всё
android@android-vm:~/FaceDL/cloud$ tree known2
known2
0 directories, 0 files