Существует несколько простых ситуаций, в которых предпочел бы IIS:
Конечно, IIS не имеет простых встроенных эквивалентов для некоторых очень полезных модулей Apache, таких как mod_proxy и mod_rewrite, но IIS действительно имеет несколько собственных побед:
Короткий ответ, если Ваше приложение будет полагаться на основанную на Microsoft инфраструктуру (т.е. Active Directory, совместный доступ к файлам Windows, SQL Server, Exchange Server, и т.д.), то Ваша жизнь будет намного легче при использовании IIS.
Обновление
При отражении далее, нет никакой причины, Вы не можете или не должны использовать и IIS и Apache. То, когда я работал в магазине все-Microsoft несколько лет назад, мы хорошо использовали AD возможности интеграции IIS, но мы нашли много ситуаций (переписывает и обработка ошибок главным образом), в котором были методы IIS для того, чтобы выполнить наши задачи, но модули Apache были намного более чистыми или более простыми. Таким образом, мы прикрепили сервер Apache (на поле Linux) перед IIS, с помощью mod_proxy, и пожинали лучший из обоих миров.
Решение без поддержки rsync, которое проверяет время модификации и размер файла:
diff <(find dir1 -mindepth 1 -printf '%P %t %s\n' | sort) <(find dir2 -mindepth 1 -printf '%P %t %s\n' | sort) | grep -E '^[<>]'
Пример вывода:
> bar Sat Sep 14 11:52:33.0544384394 2013 91
< foo Fri Sep 13 17:58:21.0213671425 2013 445
> foo Sun Sep 8 23:01:02.0355432619 2013 347
Показывает, что foo
был изменен в dir1
и бар
существует только в dir2
.
Вы не говорите нам, какое решение для резервного копирования вы используете, но почти все настоящие программы резервного копирования имеют режим «проверки». («Настоящим» инструментом резервного копирования в данном контексте является что-то вроде Bacula, программное обеспечение, специально разработанное для резервного копирования и восстановления).
При прочих равных условиях я бы предложил использовать реальное программное обеспечение для резервного копирования и его встроенные инструменты проверки.
При прочих равных условиях rsync -nav --delete
будет мое предложение.
Этот выполняет проверку содержимого и сообщает вам о дополнительных файлах, различных файлах и недостающих файлах. Он не такой подробный (медленный), как diff
, а -n
означает, что он фактически не затрагивает файловую систему.
В результате приведенных выше ответов я придумал следующий небольшой сценарий, которым хотел поделиться:
# vi /bin/checkbackup
#!/bin/bash
echo "1/5: Checking source files..."
find "$1" -type f -printf "%P %s\n" | sort > ~/.checkbackup_files.tmp
echo "2/5: Comparing destination files..."
find "$2" -type f -printf "%P %s\n" | sort | diff - ~/.checkbackup_files.tmp
echo "3/5: Checking source directories..."
find "$1" -type d -printf "%P\n" | sort > ~/.checkbackup_dirs.tmp
echo "4/5: Comparing destination directories..."
find "$2" -type d -printf "%P\n" | sort | diff - ~/.checkbackup_dirs.tmp
echo "5/5: Cleaning up"
rm -f ~/.checkbackup_files.tmp
rm -f ~/.checkbackup_dirs.tmp
# chmod 755 /bin/checkbackup
Использование:
$ checkbackup /path/to/dir1 /path/to/dir2
Отсутствие отчетов означает, что структура папок и имена совпадают , и что файлы имеют одинаковые размеры и имена, без каких-либо пропусков.
Протестировано на деревьях каталогов 1,5 ТБ на дисках SATA2 5400 об / мин, завершается примерно через 5 минут.
Этот сценарий никоим образом не закончен, несомненно, есть другие, лучше, быстрее и более подробные с большим количеством инструментов проверки. Но я думал, что все равно поделюсь им.