Pull to refresh

Comments 29

Надо очень любить php для администрирования сервера. Всё таки лучше php оставить web бек, а то получиться как с js, который уже не знают куда запихать. Автору спасибо, затронул интересную тему.

P.S. Сам часто использую php в качестве скрипта для крона 😉

php необходимо администратору как крылья рыбе ;) Иногда это забавно, да. Но сначала bash и powershell.

на счёт всего можно согласиться, но статье какраз привелены достаточные доводы в пользу того что не баг и не совершал, кросплатформеность, хотя конечно так про многие языки можно скачать конечно же, не без этого

И даже можно поставить powershell на linux тем же apt-get, или вообще wsl в windows

Часто вы скачите с платформы на платформу ?

если на практике то никогда, если в теории то другое простой на маке и линуксе может по разному работать

     $x++; 

А что делать, если у меня в базе на 32-битной системе больше 2 миллиардов баз? А, я понял, надо просто обрезать до 2 миллиардов баз. Остальные - лузеры.

Это я к тому, что использовать платформо-зависимый int в скрипте бэкапа без контроля переполнения...

Это я к тому, что использовать платформо-зависимый int в скрипте бэкапа без контроля переполнения...

И? php совсем нельзя использовать ни для чего? Или только для backup?

Теоретически, php является тьюринг-полным слаботипизированным интерпретируемым языком программирования общего назначения, и на нём можно реализовать любой алгоритм.

Но зачем?

Теоретически, на языке %ANYNAME% можно реализовать любой алгоритм. Но зачем? ;)
Можно более подробно про опасности платформо-зависимого 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.

Файлов может быть неважно сколько. Что вменяемого вы хотите с ними делать, раз вам мешает только разрядность счетчика? Задолго до переполнения счётчика помрёт либо алгоритм сортировки (она может неявно где угодно использоваться), либо не хватит памяти.

Бэкапить? А что такого ужасного в 2 миллиардах файлов, например? Ну да, удалять долго. Но все остальные утилиты прекрасно работают в pipe-режиме с таким.

2 млрд баз данных же ;)
С какой целью их можно создавать?

Кесарю кесарево, пхпшье пхп, и вы это хорошо показали своим скриптом копирования БД, который:

1) не кроссплатформенный (или надо вводить аргументы для пути к mysqldump)

2) заменяется целиком на одну строку mysqldump --all-databases

3) даже если вы все-таки хотите каждую базу в свой файлик - пишется в 3 (три прописью) строки что в батнике, что на bash

Мне казалось python сейчас гораздо больше распространен как язык для всяких служебных микроскриптов, требующих чего-то большего чем баш.

Почти на каждой линукс-системе стоит питон, просто по зависимостям - чуть ли не треть всякого софта на питоне работает.

У php хорошо только то, то он интегрирован с http и БД. Но все это и на питоне не сложно подтягивается.

Был наСтаковерфлочен на питоне скрипт распознавания изображений. Под виндой работал на ура. При переносе на линукс успешно падал с ошибками, хотя и сам питон и библиотеки были тех же версий.


А еще скриптами на питоне весело делиться на площадках, где режется табуляция в сообщениях.

При переносе на линукс успешно падал с ошибками

Кросплатформенность :) А вы уверены, что дело не в скрипте из SO, а именно в питоне?

А еще скриптами на питоне весело делиться на площадках, где режется табуляция в сообщениях.

Эта фича прямо создана, чтобы помешать студентам тупо тырить куски кода из интернетов :)

И начинается шоу с совместимостью версий python. Поэтому bash наше все.

А $@ одинаково в bash4 и bash5 работает?


Если верить чейнджлогу - нет.

Максимум где можно использовать пыху для админства — это шебанг. Остальное грабли, костыли и велосипеды из уже имеющихся инструментов.

Очень интересная тема затронута, но на самом деле не важно какой язык использовать, но один огромный плюс в PHP тут все таки затронут, это его кроссплатформенность. Но польза использования языка очень мало затронута, на PHP например можно затронуть огромную тему управления виндой через интерфейс WMI, и сделать свой продукт по управлению всеми виндовыми компами)

Да, полезность PHP здесь показана поверхностно, на простом примере. И в статье это указано. Надеюсь в будущих материалах у меня получится затронуть более серьезный функционал.

Sign up to leave a comment.

Articles