Согласно лучшим практикам вы не должны хранить пароли в виде открытого текста на диске или в памяти. Переменные среды также проблематичны. Представьте, что производственная система запускает программу мониторинга, которая периодически выполняет «ps auxwwe» и записывает вывод в файл журнала. Ваши учетные данные sqlplus будут случайно записаны в журналы монитора, которые могут быть доступны для чтения всем. Чаще всего журналы отправляются в Splunk / ElasticSearch / Hadoop / Loggly.
Я написал программу, которая безопасно передает учетные данные через файловые потоки здесь: https://github.com/ryanchapman/safe_sqlplus
После отправки учетных данных в программу sqlplus safe_sqlplus обнуляет часть памяти где они хранились.
Возможно, вы можете использовать find
в сочетании с cpio
, чтобы создать поток из множества ваших файлов на одном компьютере и извлечь файлы с помощью cpio
на другом компьютере.
ssh user@source "cd sourcedir && find./ -xdev -name 'A*random*' -print | cpio -o -Bav -H crc" | ssh user@target "cd destinationdir && cpio -i -vumd"
Это (непроверенное )решение основано наhttps://www.netroby.com/view/3602. Там вы найдете некоторое объяснение аргументов для find
и cpio
.
source.tar
файл; можно быстро сделать через tar -cf /sourcedirectory
; однако он будет большим и будет содержать все 100 000+ файлов в одном файле. tar -xf source.tar
или соответствующим образом распакуйте/разархивируйте обратно в исходную структуру папок, содержащую более 100 000 файлов. locate
Кажется, find
слишком медленный для этого приложения.
Существует более быстрый инструмент для поиска файлов,locate
. Он использует базу данных, которую необходимо обновить для locate
, чтобы найти самые новые файлы.
updatedb
создает или обновляет базу данных, используемую locate
. Если база данных уже существует, ее данные используются повторно, чтобы избежать повторного чтения каталогов, которые не изменились.
Этот процесс обновления очень быстрый по сравнению с find
, и при обновлении базы данных locate
найдет все файлы (и намного быстрее, чемfind
).
Создать и в следующий раз обновить базу данных
sudo updatedb
Найдите соответствующие файлы.locate
предоставляет несколько полезных опций, но не так много опций, как find
. Возможно, вы сможете разработать полезный шаблон для своих целей.
Я предлагаю две командные строки, которые вы можете изменить, а затем объединить с scp
или rsync
.
Вы можете ограничить количество файлов с помощью--limit
Если вы ищете только в /path/from/
, а не в подкаталогах -
locate --regex --limit 1000 '/path/from/A.*random.*'
Если искать не в самом /path/from/
, а в его подкаталогах -
locate --regex --limit 1000 '/path/from/.*/A.*random.*'
Подробнее см. man locate
.
Возможно, вам следует изменить способ записи и хранения этих файлов, например, с несколькими подкаталогами -, чтобы в каждом каталоге не было слишком много файлов, например один подкаталог -для каждой даты (2019-02-12
. ], 2019-02-13
... ),
или даже лучше, как многие менеджеры фотографий хранят файлы изображений,
Возможно, вы также можете удалить некоторые файлы (, например, когда они становятся слишком старыми ).