Вы должны использовать только find
, если вы собираетесь перечислить файлы с совпадающим именем, где вы ssh на удаленном сервере, и добавлять только файлы, если -type f
.
ssh USER@HOST 'find ~/listfile/ -type f -iname "*log*" '
Если вам нужно cat
содержимое найденных файлов, используйте find
с cat
следующим образом.
ssh USER@HOST 'find ~/listfile/ -type f -iname "*log*" -exec cat {} +'
Ваша конкретная проблема заключается в том, что $line
расширяется локальной оболочкой, поскольку оно заключено в двойные кавычки. Но в любом случае ваш подход - это неправильный способ перебора результатов find
. См. Почему зацикливание вывода find является плохой практикой? для получения подробной информации.
Кажется, что компилятору C++ не хватает памяти. Попробуйте указать 1 поток при сборке с помощью make, например:
$ cd path/to/connector/source
$ mkdir build && cd build
$ cmake.. -DCMAKE_BUILD_TYPE=Release
$ make -j1
(это известно как "из -исходного кода -" сборка)
Если это не помогло, а памяти Pi по-прежнему не хватает, используйте инструмент raspi-config
(, запущенный от имени пользователя root ), чтобы настроить разделение памяти Pi, отдавая как можно меньше памяти графическому процессору, и отключите графический вход, чтобы попытаться увеличить объем свободной памяти для компиляции. Затем перезагрузитесь, чтобы изменения вступили в силу, а затем соберите, как из консоли. Если все пойдет хорошо, вы можете снова использовать raspi-config
, чтобы вернуть ранее измененные настройки к их первоначальным значениям. Если это не сработает, вы можете подумать о перекрестной компиляции -на другой машине Linux с большим объемом памяти. Руководство о том, как создать цепочку инструментов кросс--компиляции для Pi с помощью crosstool-ng
, а затем с ее помощью собрать проект CMake, можно найти здесь :https://blog.kitware.com/cross-compiling-for-raspberry-pi/.