• Как записать вводимые данные в определенном формате?

    Ну и кто тебе мешает считывать собственно в любом из нужных тебе форматов ?
    Sed тебе в помощь.
    https://sed.js.org/?snippet=976nMn
    Например сделаю мак адрес сразу с двумя видами ввода
    #!/bin/bash
    BMCMAC="XX:XX:XX:XX-XX-XX-XX"
    echo "$BMCMAC" | sed  's/-/:/g'

    Вывод
    XX:XX:XX:XX:XX:XX:XX

    2 вариант, убираем и тот и другой символ.
    https://sed.js.org/?snippet=8q6npp
    Вывод
    XXXXXXXXXXXXXX
    Ответ написан
    Комментировать
  • Объединение и монтирование дисков в UBUNTU 18.04.06?

    shambler81
    @shambler81 Куратор тега Linux
    1. самый простой, просто монтируеш второй диск в папку первого, если есть возможность так разбить контент чтоб часть из него лежала в этой папке.
    Плюсы такого решения это вообще ничего не нужно делать.

    2. софтверный рейд собираеш диски в рейд.
    Ответ написан
    5 комментариев
  • Как в Ubuntu 20.04 присоединить неразмеченную область SSD к /home?

    shambler81
    @shambler81 Куратор тега Linux
    1. качаеш акронис
    2. загружаешся с флешки
    Все

    как вариант любую windows pe для админов, тоже самое.
    Дешево и сердито.
    Ответ написан
  • Как правильно настроить .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    Господа еще раз, я уже не знаю в какой
    RewriteRule- вообще не знает про GET, ну не является он по его мнению частью урла от слова совсем.
    Осознав эту мысль вы с легкостью поймете что утверждение
    RewriteRule ^cases/$ 
    RewriteRule ^cases/(.*)$
    RewriteRule ^cases/?id=dsfasdfasdfadsfsdaf$

    ОДИНАКОВЫ, если мы говорим про гет параметры.

    А вот если бы вы написали
    RewriteCond %{REQUEST_URI} ^case.php$ 
    RewriteCond %{QUERY_STRING} (^|&)id\=title-of-case($|&)
    RewriteRule   ........

    ТО смогли бы поставить условие по этому GET параметру.
    Но не удалить его, поскольку он опять же не попадает в RewriteRule

    Просто же удалить GET можно очень не очевидным способом.
    RewriteRule было стало? [QSA,L]
    Знак вопроса не опечатка, именно он в конце удалит гет папраметры с урла.
    л -логика ;) логика
    Логика mod_rewrite требует особого вида мышления ;)
    Ответ написан
    Комментировать
  • Кто-то отправляет через Postfix письма с моего сервера, как найти и запретить?

    1. батенька да вы больны, в смысле не тупые а болеете, у вас вирус.
    2. Да нужно будет его удалять, да и еще по хорошему поднять версию cms там где он это умудрился сделать.
    3. Если у вас пхп
    в php.ini
    mail.add_x_header = On
    mail.log = /tmp/phpmail.log

    Соответственно не забывая создать сам файл
    touch /tmp/phpmail.log &&  chmod 777 /tmp/phpmail.log

    Если вы хорош читаете логи в потоке и умеете юзать греп, то можно сделать проще, пихнуть все в syslog заменив лог на вот это
    mail.log = syslog
    Теперь все что вам остается это
    рестартануть пхп
    и смотреть файл, суть этой директивы следующая.
    Она будет писать именно какой файл и какая его строка и когда вызвала отправку почты.
    Пример вывода:
    X-PHP-Originating-Script: :<имя скрипта>.php
    mail() on [/var/www/vhosts/site.com/httpdocs/pages/modules/system/system.mail.inc:83]: To: smith@domain.co.uk — Headers: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed; delsp=yes Content-Transfer-Encoding: 8Bit X-Mail


    Ну и все что вам остается пойти и посмотреть что же за чудеса в этом файле происходят.
    Ответ написан
    Комментировать
  • Как организовать кеш картинок при такой архитектуре?

    Зачем вам кэш картинок
    У вас HDD ? камон братишка сейчас 2022 (почти23)
    в этом случае да большое количество даже маленьких картинок при параллельном чтение действительно просаживают вашу I-O тем самым вы замедляете работу своего сайта.
    НО сдается мне что у вас ssd а скорее всего Nvme ибо они стоят нынче как грязь под ноктями.
    Соответственно I-O диска немного ( тут используется сарказм) быстрее и не путайте пожалуйста скорость чтения со скоростью доступа ибо она еще больше чем просто скорость чтения и записи относительно HDD.
    Что вы собираетесь закешировать и какой эффект вы пытаетесь от этого получить ?
    Желательно с прфуами
    А я вам дам свой пруф.
    вы создаете в памяти раздел, закидываете туда весь сайт ( ну прям вот весь), мотнитуете его как диск.
    И замеряйте, быстрей чем весь сайт в памяти вы уже не получите.
    Итог будет я вам скажу печальный, разницы практически не будет от слова совсем ( кроме сжырания памяти).
    Все уткнется в генерацию дом. А там ахиллесова пята это mysql
    Ответ написан
    Комментировать
  • Какой есть не моноширинный текстовый редактор под линух?

    shambler81
    @shambler81 Куратор тега Linux
    https://www.sublimetext.com/ собственно по факту дефолтный текстовый редактор для любой ос
    ставь, и делай со шрифтами че хочешь.

    Then, go to Settings -> Preferences and on the right hand side(User settings) place:
    {
    "font_face": "Roboto Mono",
    "font_size": 10
    }
    Ответ написан
    2 комментария
  • Как в дедике добавить выделенный IP?

    shambler81
    @shambler81 Куратор тега Linux
    1. переключиться на статику с DHCP если он включен.
    2. добавить второй адрес.
    https://docs.hetzner.com/robot/dedicated-server/ne...
    Ответ написан
    Комментировать
  • Почему не отключается сайт?

    Все очень просто
    у тебя есть 3 конфига
    но есть и еще четвертый дефолтный
    Смотри, апачь или nginx разбирается какой сайт отдавать по http запросу браузера, если прям совсем утрированно он заберает переменную хост из браузера и на его основе подставляет конфиг в котором этот хост указан.
    пример nginx
    server_name site.ru www.site.ru
    И да ты отключил этот конфиг
    в результате он видет обращение к себе но не знает какой конфиг подставить поскольку нет с данным хостом.
    По этому он подставляет ты не поверишь default
    <VirtualHost _default_:*>
    ...

    оно же в nignx
    server {
            listen 80 default_server;
            listen [::]:80 default_server;


    А он в свою очередь ведет в какую-то папочку.
    По сути это мусорка которая должна показыватьчто-то вроде здрасти апчь работает но хост не разобран.
    Однако по стечению обстаятельств это первый конфиг который создает ( и единственный) по умолчанию веб сервр при установке.
    Именно по этому ты можешь к нему обратиться по любому айпи по любому хосту и он тебе отдаст папочку /var/www
    Короче сайт ты отключил
    Убери блядство из /var/www
    Рсскидай все сайты по отдельным конфигам и все.

    p.s
    ДА там есть еще такая же шляпа с https но там ваще пипец приколы
    Там если ключа нет то он берет "ближайший по алфовитному порядку конфиг " и подставляет его.
    И даже есть орегинальный способ борьбы с эти, к примеру в некотрых ОС default.conf называется 000-default.conf дабы нули явно будут раньше в алфавитном списке чем d в противном случае если один из сайтов не имеет https ( а отлкючить его физически нельзя одному сайту или у всех или ни у кого) то он может подхватить чужой сайт и показывать его контент, например если у тебя на сервере будет сайт ааа.ru то его конфиг подтянется как дефолтный для htttps и все сайты у кого нет https буудт показывать этот сайт напрочь игнорируя собственные конфиги

    p.p.s
    И да не заворачивайся с сайт включить выключить a2dissite apt.example.com.conf
    вся разница в том что в папке siet-enabled делается линка на паеку site-avalabled ( соответствующий файл естественно) и рестартуй апач
    Эту же линку ты можешь сделать и руками,или попросту скопировать конфиг.
    Все что в папке будет с названием *.conf будет прочтено
    тебе остается только рлоад или рестарт апача сделать
    Ответ написан
    Комментировать
  • Как объединить скрипты и сделать вывод таблицей?

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

    1. нет он убрал все ссылки на бесплатный ак, если у вас есть акаунт вы можете им пользоваться.
    2. поставь ispconfig3 -там почтовый сервер со всем фаршем.
    3.vestacp
    4. aapanel
    все они ставятся в 1 клик.
    да это веб сервера, но там етсь почтвики (почтовые сервера с GUI) которые вполне себе работают, да и интерфейс не ублюдский а вполне себе рабочий.
    Так же получеш сразу и днс сервер в придачу, да и сайтик если че можно выкатить.
    Плюс как минимум в ispconfig3 прикручен roundcube
    в остальных не проверял.( это уже веб клиент для самой почты)
    5. Мобильные же клиенты это все почтовые клиенты которые есть.
    Во всех решениях есть антиспам, и антивирус, и оно даже работает, но конечно до качества Яндекс фильтров немного недотягивает.
    Ответ написан
    Комментировать
  • Как создать сайт в основной директории BitrixVM?

    в этот каталог ставится тольоко б24
    все остальные сайты нужно ставить в экст.
    Долго объяснять но не нужно в этот каталог ставить.

    каталог можно создать руками.
    незабыв изменить владельца и групу
    Ответ написан
    Комментировать
  • Что не так с кавычками в bash?

    -name - НЕ ПОДДЕРЖИВАЕТ нормальный ситнаксис
    find /home/bitrix/ -regex ".*\.\(jpg\|jpeg\|gif\|png\|JPG\|JPEG\|GIF\|PNG\)"
    Ответ написан
    3 комментария
  • Какую версию юзать для почтового сервера?

    shambler81
    @shambler81 Куратор тега Linux
    у многих бесплатных веб панелей управления хостингом есть почтовые интерфейсы.
    так что если это чисый сервер то ставь
    ispconfig3
    aapanel
    vestacp
    там все в коробочке сразу с админкой и интерфейсом.
    Если же реальныйх почтовых ящиков не будет то без разницы.
    Ответ написан
    Комментировать
  • Как нужно изменить htaccess (opencart 3) для редиректа всех страниц на слэш в конце адреса?

    shambler81
    @shambler81 Куратор тега htaccess
    Обрати внимание что нужны оба правила и именно в такой последовательности посколкьу семантически каталог должен быть закрыт слешем, а файл естественно нет.
    Помни что файл читается сверху в низ и расположение редиректа имеет значаение.

    RewriteEngine On
       #  Директива включает редиректы.
    RewriteBase / 
       # Без директивы (.*) = /$1 будет /var/wwww/site/web/$1  с директивой  = /$1
    Options +FollowSymLinks
       # Разрешает переход по символическим ссылкам.
    Options -Indexes
    #показывает список файлов в директории (или ошибку 403 - доступ запрещен), если нет дефолтного файла (index.html, index.php).
    
    ############################################################################
    #  убирает www
    RewriteCond %{HTTP_HOST} ^www\.(.*)$
    RewriteRule ^(.*)$ https://%1/$1 [L,R=301]
    
    ############################################################################
    # http -> https
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    ############################################################################
    # сам вкурсе
    RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]
    RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L]
    RewriteRule ^system/storage/(.*) index.php?route=error/not_found [L]
    
    ############################################################################
    # ЧПУ 
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
    RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
    
    ############################################################################
    #### Убираем слеши в конце URL для статических файлов (содержит точку)  ####
    ############################################################################
    RewriteCond %{REQUEST_URI} \..+$
       # Если файл содержит точку.
    RewriteCond %{REQUEST_FILENAME} !-d
       # И это не директория.
    RewriteCond %{REQUEST_FILENAME} -f
       # Является файлом.
    RewriteCond %{REQUEST_URI} ^(.+)/$
       # И в конце URL есть слеш.
    RewriteRule ^(.+)/$ /$1 [R=301,L]
       # Исключить слеш.
    
    ############################################################################
    #### Добавляем слеш(/), если его нет, и это не файл.                    ####
    ############################################################################
    RewriteCond %{REQUEST_URI} !(.*)/$
       # Если слеша в конце нет.
    RewriteCond %{REQUEST_FILENAME} !-f
       # Не является файлом.
    RewriteCond %{REQUEST_URI} !\..+$
       # В URL нет точки (файл).
    RewriteCond %{REQUEST_URI} ^(.+)$
     # В URL есть хоть один символы
    RewriteRule ^(.*)$ $1/ [L,R=301]
    Ответ написан
  • Как исключить из копирования всей папки, одну папку на .bash?

    shambler81
    @shambler81 Куратор тега Linux
    Батенька сразу несколько замечаний.
    1. Базу дампим желательно через эвал, поскольку пароль может содержать как " так и ' так и { короче нужно извращаться
    eval "$(echo "mysqldump --no-tablespaces -u$DBLOGIN -p'$DBPASS' $DBNAME -h$DBHOST > $SITEDIR/$ELEMENT/$DBNAME\-$DATE.sql  && echo "Дамп БД $DBNAME будет сохранен в корне сайта"  ||  echo "Ошибка дампа базы данных " $DBNAME")"

    2.
    А зачем собственно вы храните это все на сервере, не проще сразу заливать в потоке на нужное место.
    Из плюсов все плюсы заливки 1 файла поскольку он в канале архивный.
    и плюсы все пофайловового копирования поскольку там уже лежит или распакованый если нужн или запакованый сайт.

    сейчас поищу где-то уменя были старые файлики похожие.

    SITEDIR="/home/bitrix/ext_www"                      # Папка до названия доменаов
    DBCONN="bitrix/php_interface/dbconn.php"            # Откуда читать настройки mysql
    FTPUSER="backup_ftp"                                # Логин FTP сервера
    FTPPASS="1111111"                        # Пароль FTP
    FTPHOST="11.154.209.177"                           # сервер FTP
    FTPDIR=""                                           # папка на FTP
    TMPDIR="/mnt/backup/site"                           # тут временный файл лежит до отправки
    TMPWPUTBASE="/mnt/backup"                            # wput подставит эту папку как базовую
    DATE=`date +"%Y-%m-%d"`                             # Формат даты в имени файла
    DATEYM=`date +%Y`/`date +%m`                        # Второй форматы даты
    LIST=${1:-`ls $SITEDIR | grep -E ".*\.\w{1,5}" | grep -v "restore.php" | grep -v "klondike.php"`} # Название сайта, тут выбор или аргумент или, регулярка  можно убрать только -L ;)
    
    mkdir -p $TMPDIR/$DATEYM # создаем  структ уру каталогов если их нет
    
    for ELEMENT in $LIST
        do
                    if [ ! -f /$SITEDIR/$ELEMENT/$DBCONN ];
                            then
                                echo " Файл $SITEDIR/$ELEMENT/$DBCONN не найден, сайт будет без БД!"
                            else
    
    DBLOGIN=$(/bin/php -r "include '${SITEDIR}/${ELEMENT}/${DBCONN}'; echo(\"{\$DBLogin}\");")
    DBNAME=$(/bin/php -r "include '${SITEDIR}/${ELEMENT}/${DBCONN}'; echo(\"{\$DBName}\");")
    DBPASS=$(/bin/php -r "include '${SITEDIR}/${ELEMENT}/${DBCONN}'; echo(\"{\$DBPassword}\");")
    DBHOST=$(/bin/php -r "include '${SITEDIR}/${ELEMENT}/${DBCONN}'; echo(\"{\$DBHost}\");")
    echo "Найдена BD $ELEMENT"
    echo ""
    echo "Login: $DBLOGIN"
    echo "DB   : $DBNAME"
    echo "Pass : $DBPASS"
    echo "Host : $DBHOST"
    echo ""
    echo "Дамп БД $DBNAME"
    
    # только через эвал и эхо смогли экранировать все  пароли
    eval "$(echo "mysqldump --no-tablespaces -u$DBLOGIN -p'$DBPASS' $DBNAME -h$DBHOST > $SITEDIR/$ELEMENT/$DBNAME\-$DATE.sql  && echo "Дамп БД $DBNAME будет сохранен в корне сайта"  ||  echo "Ошибка дампа базы данных " $DBNAME")"
    chown bitrix:bitrix $SITEDIR/$ELEMENT/$DBNAME\-$DATE.sql
                   fi
    
    echo "Считаем количество Файлов  на сайте"
    #SIZE=" $(find $SITEDIR/$ELEMENT/$WEB | wc -l)" && echo " В архиве будет $SIZE файлов"
    SIZE="$(find $SITEDIR/$ELEMENT/$WEB -not -path "$SITEDIR/$ELEMENT/bitrix/tmp/*" -not -path "$SITEDIR/$ELEMENT/bitrix/updates/*" -not -path "$SITEDIR/$ELEMENT/dev_logs/*" -not -path "$SITEDIR/$ELEMENT/upload/1c_import_light/logs/*" -not -path "$SITEDIR/$ELEMENT/upload/1c_import_light/total_errors/*" -not -path "$SITEDIR/$ELEMENT/.git/*" -not -path "$SITEDIR/$ELEMENT/bitrix/catalog_export/logs/*" -not -path "$SITEDIR/$ELEMENT/bitrix/backup/*" -not -path "$SITEDIR/$ELEMENT/bitrix/cache/*" -not -path "$SITEDIR/$ELEMENT/bitrix/managed_cache/*" -not -path "$SITEDIR/$ELEMENT/bitrix/stack_cache/*" -not -path "$SITEDIR/$ELEMENT/upload/resize_cache/*" -not -path "$SITEDIR/$ELEMENT/stats/*" | wc -l)" && echo " В архиве будет $SIZE файлов"
    
    
    echo "Архивируем сайт $ELEMENT прогресс не в килобайтах а в  количестве файлов"
    
      tar -cvpzf $TMPDIR/$DATEYM/$ELEMENT-$DATE.tar.gz --directory $SITEDIR/$ELEMENT/$WEB --ignore-failed-read --exclude='./bitrix/tmp' --exclude='./bitrix/updates'  --exclude='./dev_logs' --exclude='./upload/1c_import_light/logs' --exclude='./upload/1c_import_light/total_errors' --exclude='./.git' --exclude='./bitrix/catalog_export/logs'  --exclude='./bitrix/backup'  --exclude='./bitrix/cache' --exclude='./bitrix/managed_cache' --exclude='./bitrix/stack_cache' --exclude='./upload/resize_cache' --exclude='./stats' . | pv -s $SIZE -l > /dev/null
    
    
    echo $ELEMENT
    
    
    # >> /dev/nool 2> /var/log/backup_error.log
            rm -f $SITEDIR/$ELEMENT/$WEB/$DBNAME\-$DATE.sql # поскльку ложим на реальный сайт, ибо нормально добавить в архив не получитяс.
    
            echo "Сохраняем $ELEMENT на FTP"
    
            wput --basename=$TMPWPUTBASE -p    --no-directories      $TMPDIR/$DATEYM/$ELEMENT-$DATE.tar.gz ftp://$FTPUSER:$FTPPASS@$FTPHOST$FTPDIR && echo "Архив залит успешно, временные файлы удалены"
    >> /dev/nool 2> /var/log/backup_error.log
     #       rm -f $TMPDIR/$DATEYM/$ELEMENT-$DATE.tar.gz
    echo -en "\n\033[37;1;41m Ссылочка:\033[0m \e[1;4;36mwget ftp://$FTPUSER:$FTPPASS@$FTPHOST/site/$DATEYM/$ELEMENT-$DATE.tar.gz\e[0m\n\n" #ks05
    
      done
    
    
      if [ -n "$(cat /etc/nginx/bx/site_enabled/bx_ext_ssl_bike-centre.ru.conf | grep ^ssl_certificate )" ] ; then
           echo "        Найдены активные сертификаты SSL"
    
           cat /etc/nginx/bx/site_enabled/bx_ext_ssl_bike-centre.ru.conf | grep --perl-regexp "^ssl_certificate\s+.*\.pem" | grep  --perl-regexp -o  /.+[^\;]
           cat /etc/nginx/bx/site_enabled/bx_ext_ssl_bike-centre.ru.conf | grep --perl-regexp "^ssl_certificate_key.*\.pem" | grep  --perl-regexp -o  /.+[^\;]
    wput  -u --basename=/etc/ /etc/letsencrypt/live/bike-centre.ru/ ftp://backup_ftp:QWaszx123@178.154.209.177/etc_backup/
       # тут в телегу 
    curl --socks5-basic \-X POST https://api.telegram.org/bot5320773503:************/sendMessage -d chat_id=-676521809  -d \text="Backup site bike-centre.ru OK "

    Может что-то из этого покажется полезным
    скрипт запускается так scrypt.sh site.ru
    если просто то все сайты бэкапятся, соответственно кажыдй со своей базой со своим названием.
    Но тут не в потоке. о этом тут писал. https://klondike-studio.ru/blog/bystro-skopirovat-...
    Так же БД можно заливать сразу на удаленый сервер, притом уже архивную.

    Ну и как исключить я вам тут показал.
    Ответ написан
    Комментировать
  • В чем проблема в регулярном выражении?

    https://regex101.com/r/DHVFvl/1
    Собственно группы добавил
    Заменил на только цифры до запятой далее тоже на цифры
    Группы есть осталось тольок вывести то что вам нужно по факту просто сделав
    $1,$2
    Собственно язычек бы на котором вы это делаете. но там есть в ссылочке примрыэтого кода на разных языках смотрите.
    Ответ написан
    Комментировать
  • Как вывести в основном разделе под раздел с товарами 1С Bitrix?

    1. ставите нормальную выгрузку 1с а не то убожество что по дефолту в1с. https://1c.1c-bitrix.ru/ecommerce/download.php
    там есть виртуальное дерево каталога.
    То есть вы собираете структуру каталога из элементов и разделов в 1с, не похожую на то что 1с.
    Нкидываете как вам нужно при экспорте и загружаете уже нужную структуру на сайт.
    https://dev.1c-bitrix.ru/learning/course/index.php...
    Ответ написан
  • Почему могла упасть производительность, при включении memcached в BitrixVM и сайта на Битрикс?

    Она и должна упасть, что вас смущяет.
    Он нужен в битиркс вм только для кластера, дабы можно было возить сессии.
    opcache более производителен, даже с файловым кешем.
    Даже через сокет
    Ответ написан
  • Как лучше реализовать эту таблицу в битрикс?

    Раздел "Стандарт, Профи, Корп
    подразделы у каждого "Работа с ТДС"
    Собственно все у тебя все есть, строишь табличку.

    638afd2e15ed7284328817.png
    Ответ написан
    Комментировать