#!/bin/bash # Define the log format (all on one line) LOG_FORMAT="log_format domain_combined '$host \$remote_addr - \$remote_user [\$time_local] \"\$request\" \$status \$body_bytes_sent \"\$http_referer\" \"\$http_user_agent\"';" # Check if we're root if [ "$EUID" -ne 0 ]; then echo "Please run as root" exit 1 fi # Backup the original config if ! cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak; then echo "Failed to create backup" exit 1 fi # Check if format already exists if grep -q "log_format domain_combined" /etc/nginx/nginx.conf; then echo "domain_combined format already exists" exit 0 fi # Add the format after the first 'http {' line sed -i "/^http {/a \ ${LOG_FORMAT}" /etc/nginx/nginx.conf # Test the nginx config nginx -t if [ $? -eq 0 ]; then echo "Successfully added domain_combined log format" else echo "Error in nginx config, reverting..." mv /etc/nginx/nginx.conf.bak /etc/nginx/nginx.conf exit 1 fi