Я предлагаю использовать OMD (Открытое Контрольное Распределение) для контроля компьютеров. OMD может быть установлен очень легко, и это очень мощно. Кроме того, системные требования на Ваших контролируемых компьютерах являются очень низкими. Проверьте его на mathias-kettner.de.
По крайней мере, необходимо взглянуть на графики данных о производительности.
Кавычка от OMD-Wiki:
OMD в настоящее время идет со следующим программным обеспечением:
- nagios
- nagios-плагины
- nsca
- check_nrpe
- Icinga
- Shinken
- nagvis
- pnp4nagios
- rrdtool/rrdcached
- Check_MK
- МК Livestatus
- Многоузловой
- dokuwiki
С ZSH
:
setopt extendedglob # best in ~/.zshrc
mv A/^(file|directory)(|2)(D) B/
( (D)
(D) , включающие dot (скрытые) файлы).
с Bash
:
shopt -s extglob dotglob failglob
mv A/!(@(file|directory)?(2)) B/
с ksh93
(FIGNORE='@(.|..|@(file|directory)?(2))'; mv A/* B)
то, что я обычно делаю
cd A
ls > a
(предполагая, что у вас нет файла "a").
vi a
удаляет любой файл или каталог, который должен быть сохранен.
mv $(<a) B
Вы можете использовать найти
с исключенными выражениями:
find . ! -name . -prune ! -path ./file \
! -path ./file2 \
! -path ./directory \
! -path ./directory2 \
-exec mv {} your_destination \;
Это решение вдохновлено этим вопросом .
ls | egrep -v '(file|file2|directory|directory2)' | xargs -i mv {} ../B/
. $ sudo mv (имя исходной папки) A B (имя целевой папки)
пример: создать пустой каталог в какую-то подпапку 1) sudo mkdir -p A / {b / {a, b, c}, c, d}
2) ls A /
bcd
3) sudo mkdir B
5) sudo mv a (папка) b (папка)
Вы можете использовать массив bash, чтобы сохранить, какие из них вы хотите пропустить, а затем использовать функцию containsElement
, продемонстрированную здесь :
$ skiplist=(file file2 directory directory2)
$ for f in *; do if containsElement "$f" "${skiplist[@]}"; then continue; fi;
mv -v "$f" B; done
Если ./A
и ./B
находятся в одной и той же файловой системе и , если эти файлы еще не существуют в ./B
:
file file2 directory directory2
. ...то эта операция должна быть просто атомарной:
cd ./A; mv * ../B
for mv in file file2 directory directory2
do mv ../B/"$mv" .
done
Если их нет, то существует как минимум 8 дополнительных копий перекрестных устройств, выполненных с помощью приведенного выше набора команд.