Комментарии 29
Надо очень любить php для администрирования сервера. Всё таки лучше php оставить web бек, а то получиться как с js, который уже не знают куда запихать. Автору спасибо, затронул интересную тему.
P.S. Сам часто использую php в качестве скрипта для крона ?
php необходимо администратору как крылья рыбе ;) Иногда это забавно, да. Но сначала bash и powershell.
$x++;
А что делать, если у меня в базе на 32-битной системе больше 2 миллиардов баз? А, я понял, надо просто обрезать до 2 миллиардов баз. Остальные - лузеры.
Это я к тому, что использовать платформо-зависимый int в скрипте бэкапа без контроля переполнения...
Это я к тому, что использовать платформо-зависимый int в скрипте бэкапа без контроля переполнения...
И? php совсем нельзя использовать ни для чего? Или только для backup?
Теоретически, php является тьюринг-полным слаботипизированным интерпретируемым языком программирования общего назначения, и на нём можно реализовать любой алгоритм.
Но зачем?
Можно более подробно про опасности платформо-зависимого int в скрипте бэкапа без контроля переполнения? Что не так? В скрипте необходим контроль переполнения? Или int должен быть платформо-независимым? Хотелось бы обоснования ;)
Ну, представьте себе, что эта штука натыкается на 2.3 миллиарда чего-то. Файлов, баз данных, whatever.
А у неё int - это 31 бит и знак.
В приличных языках программирования:
1) вам не дадут индексировать чем-либо, что потенциально меньше, чем максимальное индексируемое значение (usize)
2) При итерации по чему-то больше размера оперативной памяти у вас не будет индекса, а будет полноценная итерация.
Вот, баш, он 32-битный на 32-битных машинах. Однако, конструкция while read p не содержит в себе индекса, так что итерировать можно хоть через терабайтный файл.
Т.е. проблема тут уже не в php, в вот этой восхитительной конструкции $x++.
представьте себе, что эта штука натыкается на 2.3 миллиарда чего-то
Представьте, что у вас канцелярский нож, а вы наткнулись на вражеский танк. Каждому инструменту - своя область применения.
В приличных языках программирования
Известные мне операционные системы написаны на языках, где эта конструкция широко используется, только без знака $ ;)
Правильно. И что мы напишем в статье "использование канцелярского ножа в противотанковых операциях"?
Вы в офисе в бизнес-центре на 12 этаже. Откуда там танк? ;) Откуда вдруг MAXINT баз данных?
Чтобы получить maxint базу данных достаточно включить на сутки скрипт их создания. Средний компьютер сейчас делает порядка двух миллиардов операций в секунду, а особо выдающиеся - 4 миллиарда на каждое ядро.
На 32 разрядной системе не получится. Там такой же длины int. И, скорее всего, файловая система ляже ещё раньше. А ещё раньше ляжет первый попавшийся алгоритм со сложностью хуже чем О(0), который должен это обрабатывать.
Вы только что придумали, что на 32-битной ОС у файловой системе не может быть файлов больше 2Гб, и самих файлов не может быть больше 4 миллиардов?
Бедная, бедная zfs. Да и любая другая уважающая себя фс, начиная с ntfs и заканчивая ext4.
Файлов может быть неважно сколько. Что вменяемого вы хотите с ними делать, раз вам мешает только разрядность счетчика? Задолго до переполнения счётчика помрёт либо алгоритм сортировки (она может неявно где угодно использоваться), либо не хватит памяти.
Кесарю кесарево, пхпшье пхп, и вы это хорошо показали своим скриптом копирования БД, который:
1) не кроссплатформенный (или надо вводить аргументы для пути к mysqldump)
2) заменяется целиком на одну строку mysqldump --all-databases
3) даже если вы все-таки хотите каждую базу в свой файлик - пишется в 3 (три прописью) строки что в батнике, что на bash
Мне казалось python сейчас гораздо больше распространен как язык для всяких служебных микроскриптов, требующих чего-то большего чем баш.
Почти на каждой линукс-системе стоит питон, просто по зависимостям - чуть ли не треть всякого софта на питоне работает.
У php хорошо только то, то он интегрирован с http и БД. Но все это и на питоне не сложно подтягивается.
Был наСтаковерфлочен на питоне скрипт распознавания изображений. Под виндой работал на ура. При переносе на линукс успешно падал с ошибками, хотя и сам питон и библиотеки были тех же версий.
А еще скриптами на питоне весело делиться на площадках, где режется табуляция в сообщениях.
При переносе на линукс успешно падал с ошибками
Кросплатформенность :) А вы уверены, что дело не в скрипте из SO, а именно в питоне?
А еще скриптами на питоне весело делиться на площадках, где режется табуляция в сообщениях.
Эта фича прямо создана, чтобы помешать студентам тупо тырить куски кода из интернетов :)
И начинается шоу с совместимостью версий python. Поэтому bash наше все.
Очень интересная тема затронута, но на самом деле не важно какой язык использовать, но один огромный плюс в PHP тут все таки затронут, это его кроссплатформенность. Но польза использования языка очень мало затронута, на PHP например можно затронуть огромную тему управления виндой через интерфейс WMI, и сделать свой продукт по управлению всеми виндовыми компами)
Использование PHP для системного администрирования