Плата RAID XServe составляет $699 - хотя я очень предпочитаю аппаратные средства RAID, я сказал бы, что программное обеспечение RAID OSX достаточно хорошо для серьезного подрыва выравнивания такого дорогого аппаратного контроллера.
В основном не волнуйтесь об этом, тратьте часть этих денег на => диск USB на 80 ГБ и предоставьте Машине времени право давать Вам восстанавливаемое резервное копирование при потере зеркала.
Комментарии к плану обновления:
Шаг 31 устраняет необходимость в шаге 2.
Я не понимаю шаг 7. Я никогда не делал ничего подобного при обновлении с домена 2K3 до домена 2K8.
Ответы на вопросы:
Вам вообще не нужно передавать роли FSMO. Если вы вводите контроллер домена W2K8 только в домен / лес W2K3, контроллер домена W2K8 будет успешно существовать на уровне домена и леса W2K3. Если ваша цель - заменить контроллер домена W2K3 и повысить функциональные уровни домена и леса, просто запустите DCPROMO на контроллере домена W2K3, и DCPROMO плавно перенесет роли FSMO на контроллер домена W2K8, после чего вы сможете повысить уровень домена и функциональные уровни.
Каждый второй столбец разделен на .
и последняя часть (расширение) сохранена в
array.
#!/bin/bash
find . -type f -printf "%s\t%f\n" | awk '
{
split($2, ext, ".")
e = ext[length(ext)]
size[e] += $1
}
END{
for(i in size)
print size[i], i
}' | sort -n
тогда вы получите общий размер каждого расширения в байтах.
60055 gemspec
321991 txt
2075312 html
2745143 rb
13387264 gem
47196526 jar
В bash версии 4 вам просто нужно позвонить find
, ls
и awk
не обязательно:
declare -A ary
while IFS=$'\t' read name size; do
ext=${name##*.}
((ary[$ext] += size))
done < <(find . -type f -printf "%f\t%s\n")
for key in "${!ary[@]}"; do
printf "%s\t%s\n" "$key" "${ary[$key]}"
done
Это решение:
find . -type f | grep -E ".*\.[a-zA-Z0-9]*$" | sed -e 's/.*\(\.[a-zA-Z0-9]*\)$/\1/' | sort | uniq -c | sort -n
Решение, изначально размещенное в этом сообщении: Получить все расширения и их соответствующее количество файлов в каталоге
Я решил использовать эти две команды:
FILES=$(find . -name '*.c')
stat -c %s ${FILES[@]} | awk '{ sum += $1 } END { print ".c" " " sum }'
Расширение сценария Иана более быстрой версией для работы с большим количеством файлов.
#!/bin/bash
ftypes=$(find . -type f | grep -E ".*\.[a-zA-Z0-9]*$" | sed -e 's/.*\(\.[a-zA-Z0-9]*\)$/\1/' | sort | uniq)
for ft in $ftypes
do
echo -ne "$ft\t"
find . -name "*${ft}" -exec du -bcsh '{}' + | tail -1 | sed 's/\stotal//'
done
моя версия ответа на вопрос:
#!/bin/bash
date > get_size.log
# Lists all files
find . -type f -printf "%s\t%f\n" | grep -E ".*\.[a-zA-Z0-9]*$" | sort -h | awk '
{
split($2, ext, ".")
e = ext[length(ext)]
# Checks that one extension could be found
if(length(e) < length($2)) {
# Check that file size are bigger than 0
if($i > 0) {
# Check that extension not are integer
if(!(e ~/^[0-9]+$/)) {
size[e] += $1
}
}
}
if(length(e) == length($2)) {
size["blandat"] += $1
}
}
END{
for(i in size)
print size[i], i
}' | sort -n >> get_size.log
echo
echo
echo The result are in file get_size.log
Попробуйте Crab ( http://etia.co.uk/ ) - это утилита командной строки, которая позволяет запрашивать файловую систему с помощью SQL.
Для macOS:
#!/bin/bash
for ft in $(find "$1/" -type f | { export GREP_OPTIONS="--color=never" && grep -E ".*\.[a-zA-Z0-9]*$"; } | sed -E 's/.*(\.[^\.]*)$/\1/' | sort | uniq)
do
find "$1/" -name "*$ft" -exec stat -f%z {} \; | awk '{total += $1} END {printf "%s\t",total}'
echo " $ft"
done | sort -hr
$ bash temp.sh assets
1622995 .monstertype
1279175 .frames
756855 .npctype
706087 .projectile
573611 .head