Skrypt bash do ręcznego tworzenia socketów o zadanych uprawnieniach

    Poniższy skrypt odpowiada za tworzenie socketów. Przydatne w sytuacji, kiedy musimy przekierować ruch sieciowy do bazy danych, która odwołuje się do adresu localhost za pomocą HaProxy.

    Instalacja paczki

    apt-get install socket haproxy -y
    

    Wyłączenie HaProxy z automatycznego uruchamiania się po restarcie systemu

    systemctl disable haproxy
    

    Skrypt

    SOCKET="/usr/bin/socket"
    CHMOD="/bin/chmod"
    MKDIR="/bin/mkdir"
    ECHO="/bin/echo"
    KILLALL="/usr/bin/killall"
    SOCKET_DIR="/var/run/mysqld"
    SOCKET_FILE="mysqld.sock"
     
    if [ ! -f "${SOCKET}" ]; then
        ${ECHO} "Brakuje pakietu: socket"
        exit 10
    fi
     
    ${CHMOD} 766 ${SOCKET_DIR}/${SOCKET_FILE} 2> /dev/null
     
    if [ ! -d "${SOCKET_DIR}" ]; then
        ${MKDIR} -p ${SOCKET_DIR}
    fi
     
    if [ ! -S "${SOCKET_DIR}/${SOCKET_FILE}" ]; then
        ${KILLALL} socket
        ${SOCKET} -sb ${SOCKET_DIR}/${SOCKET_FILE}
        /etc/init.d/haproxy restart
    fi
     
    exit 0
    

    Plik konfiguracyjny HaProxy

    global
            maxconn 9000
            maxpipes 3000
            user haproxy
            group haproxy
            daemon
    
    defaults
            timeout connect 10s
            timeout client 30s
            timeout server 60s
            timeout tunnel 1h
    
    frontend mysql-frontend-socket
            bind unix@/var/run/mysqld/mysqld.sock
            maxconn 3000
            default_backend mysql-backend
    
    frontend mysql-frontend-ip
            bind 127.0.0.1:3306
            maxconn 3000
            default_backend mysql-backend
    
    backend mysql-backend
            mode tcp
            fullconn 3000
            server MYSQL 192.168.200.200:3306 maxconn 300
    

    Konfiguracja Crontab

    */1 * * * * /root/socket.sh