Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # IP-адрес сервера
- SERVER_IP="your_host_ip"
- # Файл для сохранения результатов
- OUTPUT_FILE="ports.md"
- # Очистка и заголовок Markdown-файла
- cat > "$OUTPUT_FILE" <<EOF
- # Открытые порты на $SERVER_IP
- - **$SERVER_IP**
- EOF
- # Получаем список всех контейнеров
- docker ps --format "{{.Names}}" | while read -r SERVICE_NAME; do
- # Получаем порты контейнера
- PORTS=$(docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}}{{if $conf}}{{$p}} -> {{(index $conf 0).HostPort}}{{"\n"}}{{end}}{{end}}' "$SERVICE_NAME")
- # Проверяем, есть ли у контейнера открытые порты
- if [[ -n "$PORTS" ]]; then
- echo " - **$SERVICE_NAME**" >> "$OUTPUT_FILE"
- # Временный файл для хранения уникальных портов
- TEMP_PORT_FILE=$(mktemp)
- # Обрабатываем каждый порт
- echo "$PORTS" | while read -r PORT_MAPPING; do
- if [[ "$PORT_MAPPING" == *"->"* ]]; then
- HOST_PORT=$(echo "$PORT_MAPPING" | awk -F'-> ' '{print $2}')
- if [[ -n "$HOST_PORT" ]]; then
- echo " - [**$SERVER_IP:$HOST_PORT**](http://$SERVER_IP:$HOST_PORT)" >> "$TEMP_PORT_FILE"
- fi
- fi
- done
- # Добавляем уникальные порты в основной файл
- sort -u "$TEMP_PORT_FILE" >> "$OUTPUT_FILE"
- rm -f "$TEMP_PORT_FILE"
- fi
- done
- echo "Файл $OUTPUT_FILE создан успешно."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement