• Как создать символическую ссылку для папки и всех ее вложенных файлов и папок?

    @pfg21
    ex-турист
    разобраться в правах доступа к файлам и т.д.

    1. файл ****mam.ru/imgs/1.jpg может быть не доступен для чтения той програмке куда подсовываешь (я правильно понял это http-сервер под отдельным пользователем)

    2. програмка, которая пытается получить доступ к файлу ограничена директорией (chroot) /home/mam/web/mam.ru/public_html и не имеет права прочитать файл в директориях вне указанного пути.
    тогда вместо линка используй mount --bind

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

    и т.д. и т.п. изучай :)
    Ответ написан
    Комментировать
  • Можно ли подменить свой ip на чужой?

    paran0id
    @paran0id
    Умный, но ленивый
    Да. VPN или прокси скроют твой ip, заменив его своим. Заменить свой ip на какой-то конкретный чужой проблематично, для этого придется поднять прокси или VPN на нём.
    Ответ написан
    2 комментария
  • Как поднять два процесса в nginx?

    martin74ua
    @martin74ua
    Linux administrator
    это называется виртуальный хост.
    поднимаете два виртуальных хоста, в каждом поднимаете прокси на ваши процессы....
    Ответ написан
    Комментировать
  • Как поднять два процесса в nginx?

    paran0id
    @paran0id
    Умный, но ленивый
    Один nginx с несколькими секциями server.
    Ответ написан
    Комментировать
  • Как обновить OpenSSH до последней версии в ubuntu 20.04?

    ValdikSS
    @ValdikSS
    В нём нет уязвимостей: дистрибутивы исправляют (бэкпортируют) их в текущей версии, не обновляя ПО до более новой. Так поступают все дистрибутивы с долгосрочной поддержкой.

    Если вы хотите обновить версию, вам придётся скомпилировать её самостоятельно.
    Ответ написан
    Комментировать
  • Почему PageSpeed Insights пишет что не работает сжатие gzip?

    kotomyava
    @kotomyava
    Системный администратор
    В PageSpeed Insights пишется где именно не включено сжатие.
    Надо проверить для соответствующих url. Это может быть не html, например. И это, кстати, могут быть и внешние ресурсы какие-нибудь.
    Ответ написан
    Комментировать
  • Какое есть API для получения курсов валют и криптовалют?

    @rPman
    А какой тебе нужен?

    Курс обмена валют это эффимерная абстракция, его можно получить, либо на конкретный момент времени в прошлом (последняя сделка) и что главное для конкретной биржи и каждой они отличаются, часто заметно, либо нечто усредненное за какое то время, опять так же в прошлом.

    Так же есть официальные курсы, публикуемые центробанками государств (для рубля смотри cbr.ru), которые практически никак не коррелируют с тем что творится на биржах, но косвенно они друг на друга влияют и являются статичным числом, назначаемым на сутки.

    Цена последней сделки (ticks) никаким боком не гарантирует что следующая сделка будет исполнена по этой же цене.

    На большинстве бирж есть стакан (для фиатных валют свободный доступ к оперативной информации отсутствует, везде придется платить, цены порядка 3-5т.р. смотри у брокеров, для криптовалютных бирж смотри их api, каждый изобретает черти что, но бесплатно) - из которого можно в каждый момент времени вычислять две цены - покупки и продажи, если совершить сделку по маркету, но в зависимости от объема сделки, числа будут получаться разными.

    Некоторые банки дают такие цены (кстати почти всегда кошмарно невыгодные, хотя помню тинькоф заметно выделялся) при совершении сделок у них, каждый банк так же предлагает свои api или чаще не предлагает.

    Все это потому, что существует понятие ликвидности торгов. Она не бесконечная (есть оговорки, смотрим к примеру dex на эфире - Synthetix).

    p.s. если тебе считать по какой цене конвертировать свои активы если твой клиент сделку совершает, не забывай про комиссии
    Ответ написан
    1 комментарий
  • Как сделать deploy без простоя?

    @Akela_wolf
    Extreme Programmer
    Принцип следующий:
    1. Делаете контейнер с фронтом-балансировщиком (nginx или что-то подобное).
    2. Запускаете второй контейнер с бэком, содержащий новую версию.
    3. Новый контейнер подключается к балансировщику. Тут дальше возможны варианты - балансировщик автоматически начинает переводить траффик на новую версию. Или в каком-то соотношении. Или только тестовый трафик. Или переключаете балансировщик на новый контейнер вручную. Или... (в общем вариантов тут много). Идея в том, чтобы перейти в целевое состояние - запросы обрабатывает новый бэкэнд. На этом этапе старая и новая версия бэкэнда должны уметь работать параллельно, то есть часть запросов может обрабатываться старой версией, часть новой, что налагает на новую версию требование сохранения обратной совместимости со старой версией (в частности это ограничивает возможные изменения структуры БД). В любой момент, если новая версия заработала как-то не так, можно "вертать всё взад", то есть опустить контейнер с новой версией и вернуть весь трафик на старую.
    4. Убедившись что новая версия работает стабильно, переводите с балансировщика весь трафик на новую и опускаете контейнер со старой версией, оставляя контейнер с новой единственным.

    Не очень понимаю что вы подразумеваете под контейнером с фронтендом, если это просто веб-сервер, который раздает SPA-приложение (HTML/CSS/JS), то в принципе аналогично.

    Схема такого апгрейда не слишком проста в реализации, поэтому такой апгрейд (zero-downtime upgrade) применяется в энтерпрайзе, в котором никак нельзя допустить простоя в обслуживании. Поэтому смотрите сами - насколько те несколько секунд (максимум минут) простоя за которые запускается новый контейнер стоят этой возни. Если такой апгрейд действительно нужен, то советую вместо docker compose посмотреть в сторону kubernetes.
    Ответ написан
    2 комментария
  • Как изменить описание коммита локально и на github?

    Есть вариант через интерактивный ребейз, но нужно понимать, что оно фактически заменит твой коммит, на новый, с новым описанием. Пушить изменения нужно будет с флагом --force, такой фокус не покатит, если ты хочешь это сделать в мастере и от этого мастера уже бранчевались люди.
    Ответ написан
    Комментировать
  • Как сосчитать количество активных сессий?

    hint000
    @hint000
    у админа три руки
    w |tail -n +3|awk '{print $1}'|grep 'r$\|x$\|z$'|wc -l

    (вот только чему вы научитесь, копипастя преподу готовенькие ответы?)
    Ответ написан
    2 комментария
  • Как создать поддомен nginx?

    paran0id
    @paran0id
    Умный, но ленивый
    Да, так
    Ответ написан
    Комментировать
  • Почему нее качаются библиотеки пайтон через пайчарм?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Приносим извинения, все штатные экстрасенсы в отпуску, в связи с чем мы не в состоянии увидеть текст ошибки, отображаемый в вашей консоли что затрудняет возможность осмысленного ответа. Попробуйте приложить текст ошибки или обратиться попозже.
    Ответ написан
    Комментировать
  • Как скопировать смс с кнопочного телефона на компьютер?

    paran0id
    @paran0id
    Умный, но ленивый
    У нокии была софтина для бэкапа телефона на комп. А так от телефона зависит, нужно по конкретной модели гуглить.
    Ответ написан
    6 комментариев
  • Чем плох md5(md5($pass)) для пароля?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Иногда смотришь на вопрос и не понимаешь, о чем он.
    Судя по вопросу и цифрам в нем, автор и так уже осведомлен о правильных способах хэширования и должен уже знать ответ на свой вопрос.

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

    Возможно, непонимание происходит оттого, что существует не один, а несколько векторов атаки на пароль.
    1. Поиск хэша по "радужным таблицам" (rainbow tables): огромным базам данных, где собираются заранее посчитанные хэши для любых возможных строк.
    2. Метод грубой силы (bruteforce): перебирать все комбинации символов и применять к ним хэширующую функцию до тех пор, пока она не вернёт искомый хэш.
    3. Поиск по словарю. Похож на брутфорс, но перебор не всех возможных значений, а всего нескольких тысяч самых популярных паролей, типа "123", "password" и пр.
    phpfaq.ru/tech/hashing

    И только одного элемента недостаточно, а нужны все в комплексе:
    - Хэширующая функция должна иметь большую вычислительную сложность, чтобы усложнить подбор перебором. по этой причине md5() не подходит
    - Хэш должен быть посолен уникальной солью, чтобы нельзя было, затратив 1 раз кучу вычислительных усилий, заранее построить хэши для любых комбинаций символов. По этой причине фарш без соли - деньги на ветер.
    - Пароль не должен быть слишком простым, иначе даже медленный перебор его раскроет. Этот момент тоже надо учитывать
    Ответ написан
    Комментировать
  • Как можно отправить свой POST-запрос?

    vabka
    @vabka
    Токсичный шарпист
    Вместо браузера используй те инструменты, которые для этого предназначены.
    Уже названный консольный curl вполне подходит для этого.
    Если консоль для тебя не очень привычный инструмент - попробуй postman
    Ответ написан
    7 комментариев
  • Как получить уведомление, если сайт перестал работать?

    Ukrainskiy
    @Ukrainskiy
    Свой - Zabbix
    Чужой - https://uptimerobot.com/
    Ответ написан
    Комментировать
  • С какой частотой обновляется ARP таблица на роутере/точках доступа?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    У всех по-разному, в некоторых случаях это можно настроить.
    Ответ написан
    Комментировать
  • Влияет ли количество CPU на показания нагрузки в top'е?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Дело обстоит следующим образом.

    Load AVG показывает суммарную загрузку по всем ядрам процессоров (или ядерным потокам). Другими словами - это суммарный показатель загрузки всей системы.

    Но, в утилите top/htop можно посмотреть загрузку по каждому ядру (потоку ядра) в отдельности - нажмите кливишу 1, увидите загрузку каждого ядра в отдельности.

    Возвращаясь к Load AVG:
    - если у вас в системе 1 процессор, и AVG равно единице, то у вас система загружена полностью;
    - если у вас в системе 16 процессоров, и AVG равно единице, то у вас система загружена на 1/16 часть;
    - если у вас в системе 16 процессоров, и AVG равно 16, то у вас система загружена полностью;
    - если у вас в системе 1 процессор, и AVG равно 16, то у вас система полностью перегружена, и я бы добавил 15 ядер.
    Другими словами, что либо сказать только по значению AVG нечего, без знания о количестве ядер (ну как минимум).
    В общем, как-то так...
    Ответ написан
    4 комментария
  • Как в php отправить папку (все файлы в ней) черз sftp?

    Ukrainskiy
    @Ukrainskiy
    $connection = ssh2_connect('www.example.ru', 22);
    ssh2_auth_password($connection, 'username', 'password');
    
    ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
    Ответ написан
    9 комментариев