Задать вопрос
  • Как правильно написать bash-скрипт для копирования файлов?

    привожу вам реальные примеры скриптов, тут есть все ответы на ваши вопросы.
    #!/bin/sh
    #скрипт бэкапа баз данных
    ###########################
    #Создаем папку для архивов.  -p не ругается когда папка уже есь test проверяет есть ли папка  для чистых логов
    test ! -d /var/backup/mysql/`date +%Y` && { mkdir -p /var/backup/mysql/`date +%Y` ; }
    test ! -d /var/backup/mysql/last && { mkdir -p /var/backup/mysql/last ; }
    
    #прячем от умных, и так не зайдут но всеже.
    chmod 600 /var/backup/mysql
    chmod 600 /var/backup/mysql/last
    
    # делаем сам дапм файлов sql, свежинькие файлы лежат всегда в ней, очень удобно не нужно заходить в архивы и искать там вчерашние базы, и логируется.
    for i in `mysql -uroot -p342342r2 -e'show databases;' | grep -v information_schema | grep -v Database`; do mysqldump -uroot -p342342r2 $i > /var/backup/mysql/last/$i.sql;done >> /dev/null 2>> /var/log/sqlbackup.log
    # Архивируем дамп, ну и логируем разумеется
    cd /var/backup/mysql/
    tar -czvf /var/backup/mysql/`date +%Y`/sqldump-`date +%Y-%m-%u`.tar.gz ./last >> /dev/null > /var/log/sqlbackup.log
    #(echo "Subject: Бэкап mysql   завершен"; cat /var/log/sqlbackup.log;) | /usr/sbin/sendmail  info@example.ru
    ##################  Конец скрипта

    а вот с ротированием
    #  БЭКАП /etca
    test ! -d /var/backup/etc/ && { mkdir -p /var/backup/etc/ ; }
    DATE=`date +%F`;
    BACKUPPATH="/var/backup/etc";
    find $BACKUPPATH/ -mtime +60 | xargs rm -f; #удаляет предыдущие бэкапы старше 60 дней.
    tar -czvf "$BACKUPPATH/etc.$DATE.tar.gz" /etc/ > /dev/null 2> /dev/null;
    Ответ написан
    Комментировать
  • Как сократить ссылки с помощью .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    GET не является частью урла
    RewriteCond %{QUERY_STRING} (^|&)language\=ru($|&)
    RewriteRule ^(.+)$ /%1? [L,R=301]
    Ответ написан
    Комментировать
  • Какую выбрать связку фронт+бекенд+бд для ввода и хранения данных?

    mysql + phpmyadmin ;)
    apache или ngixn на выбор

    есть на руби, но не уверен что в "приятный веб интерфйс" оно входит
    https://github.com/robinbortlik/db_explorer
    Ответ написан
    4 комментария
  • Как сделать редирект в .htaccess на частично другой url?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteRule ^(.+)\-01\-mart\-2020$ /$1\-02\-aprel\-2020? [L,R=301]

    .+- 1 и более символов
    (..)- просто скобки собирают все в переменную $1 если были бы вторые скобки то они были бы $2
    подставляем все это в "куда"
    ну и ? в конце это удалить все гет параметры если они там были
    Ответ написан
    Комментировать
  • Последовательность настройки ЧПУ на рабочем проекте. Как минимизировать потери?

    Все вроде так.
    единственное исключай из индекса все гет параметры типа ?search=lalala
    ТАкие как фильтры и тд
    например ?id=5&color=read&cost=140-499&in=moscow
    посколку тайтл у них не уникальный а толку от нее нет.
    А еще я бы вначале включил в индес новые а потом постепенно удалял старые.
    Ответ написан
    Комментировать
  • Можно ли изменить порт для Битрикс?

    shambler81
    @shambler81 Куратор тега 1С-Битрикс
    Да можно и то и другое и третья. Где у тебя размещен сайт
    в /home/bitrix/www
    или
    /home/bitrix/ext_www/site.ru ?
    Зачем тебе еще один порт?
    Ответ написан
  • Почему sed неверно обрабатывает вхождения (регулярные выражения)?

    shambler81
    @shambler81 Куратор тега Linux
    раз.
    https://github.com/EricChiang/pup
    2. если нужно спарсить что-то сложное но не на постоянной основе, обучится даже школьник.
    https://chrome.google.com/webstore/detail/web-scra...
    3. для этого вообще лучше подходят спец проги xmlstarlet, html-xml-utils .... и тд
    4.
    cut -d '>' -f3 111.txt | sed 's/<\/td//g' 1 переменная
    cut -d '>' -f5 111.txt | sed 's/<\/td//g' 2 переменная
    5ec80860ac569194842808.png
    Ответ написан
    Комментировать
  • Как убрать слеши в конце .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    Вам не нужно его убирать, есть места где его нужно добавлять, например у файла его нужно убрать, у директории закрыть.
    подробно писал тут.
    https://klondike-studio.ru/standards/standartnyy-h...
    Ответ написан
    Комментировать
  • Какой выбрать гигабитовый роутер/firewall для среднего офиса (300 пользователей)?

    Если вас не смущает "ЮЗЕРФНЕНДЛИ" микротиков , то соотношение цена качество у них лучшее.
    Ответ написан
    Комментировать
  • Как динамически менять шлюз по умолчанию?

    shambler81
    @shambler81 Куратор тега Linux
    Давайте с начала, зачем именно вам сее художество, сдается мне что можно все решить другим способом.
    Что и зачем вы делаете. Почему один интерфейс? и тд.
    Возможно будет предложено куда более эффективное решение
    Ответ написан
  • Связка для Wordpress на NGINX+PHP-fpm: Opcache, Memcached и Varnish. Стоит ли?

    fpm+nginx+opcache -самая быстрая связка.
    Рекомендованная
    nginx +apache+fpm
    memcached - медленней но умеет работать в кластерах, если кластер не нужен то opcache
    Ответ написан
  • Как поместить в публичных днс серверах а и ns-запись?

    1. почти все регистраторы имеют такую возможность, бесплатно
    Nic.ru -упорот до состояния невменяемости у них он дороже чем владение доменом в несколько раз.
    2. делигируй на яндекс коннект и наслождайся. там и почта за одно имеется и редактор днс зон полноценный. из
    минусов 1 раз придется куда-то делегировать для подтверждения аккаунта.
    Ответ написан
    Комментировать
  • Как сделать редирект с любых страниц на главную кроме панели администратора?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{REQUEST_URI} !^(.*)/bitirx/admin 
    RewriteRule ^(.*)$ %1/ [R=301,L]
    Ответ написан
    Комментировать
  • Как сделать редирект ссылки с GET-параметрами на ссылку без них?

    shambler81
    @shambler81 Куратор тега htaccess
    да в урле "куда" нужно в конце поставить знак вопроса
    тогда гет удалится.
    Единственно что тебе останится это сделать првоерку на наличие гета вначале дабы небыло цикла.
    Ответ написан
  • Практика для сисадмина?

    shambler81
    @shambler81 Куратор тега Linux
    centos debian
    собственно этого хватит
    Можешь поколупать для расширения кругозора экзотику
    pfsense thinstation и тд но это именно для саморазвития.
    При администрирование серверов не особо влияет сама ос, ты поймешь что разница между всеми юникс подобынми системами нечтожна, по факту все сводится к администрированию самх демонов.
    А вот что именно тебе интересно администировать тут нужно понять что хвататься за все лучше не стоит
    Если тебе больше нравятся сети то точно учи TCP/IP - хотя их вообще полезно занть
    Соответственно фаерволы и прокси и тд и тп
    bash в любом случае нужен, а именно stdin stdout stderr -понимать как между ними передавать потоки. sed find awk cut wc df du очень полезно будет.

    Если веб
    то apache+nginx+mysql и тд желательно начинать с готовых решений типо ispconfig3 поставишь пару раз так и в голове уляжется немного.
    В общем вначале определись с направлением.
    А то пока это "я хочу стать компьютерщиком, что мне почитать"
    Ответ написан
    Комментировать
  • С чем связаны такие ошибки SPF?

    А саму запись то можно ?
    Желательно вообще все
    Ответ написан
    3 комментария
  • Можно ли скрыть колонку таблицы при маленьком разрешении экрана?

    да но я лично делаю это достаточно просто
    делаю td на сол 12
    со всеми стилями и тд для таблицы с ховерами хуеверами и тд.
    А внутри вмето тд дивы с колами.
    Это позволяет одновременно получить все рабочие стили таблиц и это таблица, но внутри адаптив на бутстрапе
    что позволяет не только скрыавть колонки но и разваливать их при разных разрешениях на разные уровни.
    без js и кастома бутстрапа.
    Ответ написан
    Комментировать
  • Как массово сгенерировать ссылки?

    ээээ а зачем их вообще генерировать?
    этим заниматься должно ЧПУ, че велосипед то выдумывать?
    Если вам нужны редиректы то в таком количестве можно и по маске сделать.
    Опишите более подробно задачу что и зачем вы делаете.
    Ответ написан
  • Настройка Nginx proxy SSL?

    во всех манах в интернете есть ошибка по поводу проксирования HTTPS трафика на HTTP бэкэнда это не правильно и работать валидно на 100% никогда не будет, с той стороны есть js ajax и тд и тп которые не знают и не слышили о прокси по этому и бэк и фронт должны быть https
    Вот рабочий конфиг
    server {
    
    ######################################################################
    ## Server configuration
    ######################################################################
            listen *:443 ssl http2;
                    server_name 5job.ru www.5job.ru   ;
            root /var/www/5job.ru/web;
    ######################################################################
    ## Enable gzip for proxied requests and static files
    ######################################################################
        # Enable gzip for proxied requests and static files
        gzip on;
        gzip_proxied any;
        gzip_vary on;
        gzip_http_version 1.1;
        gzip_types application/javascript application/json text/css text/xml;
        gzip_comp_level 4;
    
    ######################################################################
    ## SSL configuration
    ######################################################################
    # recommended but not manditory directive
    # leave commented out unless you know what it is doing
    #more_set_headers 'Strict-Transport-Security: max-age=15768000';
            ssl on;
            ssl_session_cache  shared:SSL:10m;
            ssl_session_timeout 1h;
            ssl_protocols TLSv1.2 TLSv1.1;
            add_header Strict-Transport-Security "max-age=15768000" always;
            ssl_stapling on;
            ssl_stapling_verify on;
            ssl_prefer_server_ciphers on;
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK;
            ssl_certificate /var/www/clients/client26/web28/ssl/5job.ru-le.crt;
            ssl_certificate_key /var/www/clients/client26/web28/ssl/5job.ru-le.key;
            ssl_dhparam /etc/nginx/ssl/dhparam.pem;
    ######################################################################
    ## Log configuration
    ######################################################################
    #Все логи отключены
            error_log /dev/null crit;
            access_log off;
    
    ######################################################################
    ## 555 Еrror requires password password
    ######################################################################
    # Дев сайты закрыты htpass  login:dev pass:dev (второй кусок ниже)
            error_page 555 = @pass;
            location @pass {
                    auth_basic      "Unauthorized";
                    auth_basic_user_file    /var/www/dev_htpasswd;
                    proxy_pass              https://127.0.0.1:4443;
                    proxy_set_header        Host            $host;
                    proxy_set_header        X-Real-IP       $remote_addr;
                    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header        HTTPS           YES;
                    }
    ######################################################################
    ## Errors send to apache2
    ######################################################################
    # у апача своих алиасов куча,  а так же некоторая статика отдается
    # средствамси php, по этому все ошибки обрабатывать только apache2
            error_page 401 403 404 405 500 502 503 = @fallback;
            location @fallback {
                    proxy_pass              https://127.0.0.1:4443;
                    proxy_set_header        Host            $host;
                    proxy_set_header        X-Real-IP       $remote_addr;
                    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header        HTTPS           YES;
                    }
    
    ######################################################################
    ## Locations configuration
    ######################################################################
    #Отключаем логирование ошибок No such file or directory
    ## Disable .htaccess files
    
            location ~ /\.ht {
                    deny all;
    
                    access_log off;
                    log_not_found off;
            }
            ##
            location = /favicon.ico {
                    log_not_found off;
                    access_log off;
            }
            ##
            location = /robots.txt {
                    allow all;
                    log_not_found off;
                    access_log off;
            }
            ##
    ######################################################################
    # сервисы  на сайте phpmyadmin почта и letxencrypt
            location /phpmyadmin/ {
                    deny all;
                    # поставить пароль на phpmyadmin
                    return 555;
                    root  /usr/share/phpmyadmin/;
            }
            ##
            location /webmail/ {
                    rewrite ^/(.*)$ https://$http_host:8080/$1 permanent;
            }
            # letsencrypt
             location /.well-known/acme-challenge/ {
                    alias /usr/local/ispconfig/interface/acme/;
                    default_type text/plain;
    
             }
    # static content
    # Отдаем статику напрямую с nginx
            location ~* ^.+\.(jpg|jpeg|svg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|mp3)$ {
                    root  /var/www/5job.ru/web;
                    access_log off;
                    expires 30d;
                    gzip_static on;
            }
    
    # default location
            location / {
                    index index.php index.html index.htm;
                    proxy_pass              https://127.0.0.1:4443;
                    proxy_set_header        Host            $host;
                    proxy_set_header        X-Real-IP       $remote_addr;
                    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header        HTTPS           YES;
                    ######################################################################
                    ## Dev site Protection Requests in location /
                    ######################################################################
                    # Дабы дев сайты не индексировались поисковиками, принудительно
                    # Ставим пароли на них,  все что начинается с dev,old. или домен ks03
                            if ($http_host ~* "^(dev|old|www.old|www.dev)\..*\..{2,8}$"){
                                    return 555;
                                    }
                                    if ($http_host ~* "^.*\.ks03\.ru$"){
                                    return 555;
                                    }
    
                                    proxy_set_header X-Forwarded-Proto https;
                                    include /etc/nginx/locations.d/*.conf;
                    }
    }



    Далее повторяем уже для http
    Ответ написан
    Комментировать