2023-11-29


```bash
#!/bin/sh

# 사용법 표시 함수
usage() {
    echo "Usage: $0 -p PORT -f OUTPUT_FILE"
    exit 1
}

# 옵션 초기화
PORT=""
OUTPUT_FILE=""

# 옵션 파싱
while getopts "p:f:" opt; do
    case $opt in
        p)
            PORT="$OPTARG"
            ;;
        f)
            OUTPUT_FILE="$OPTARG"
            ;;
        \?)
            usage
            ;;
    esac
done

# 필수 옵션 확인
if [ -z "$PORT" ] || [ -z "$OUTPUT_FILE" ]; then
    usage
fi

# TCP 서버 실행
while true; do
    nc -l -p "$PORT" | while read -r line; do
        # 현재 시간을 포맷에 맞춰서 가져옴
        current_time=$(date "+%Y-%m-%d %H:%M:%S")

        # 수신한 패킷과 시간 정보를 출력
        echo "$current_time - $line"

        # 파일에 저장 (append 모드)
        echo "$current_time - $line" >> "$OUTPUT_FILE"
    done
done
```

이 스크립트는 무한 루프를 통해 계속해서 클라이언트의 연결을 수락하고, 연결이 끊어지면 다시 대기하여 새로운 연결을 수락합니다. 계속해서 수신된 패킷과 시간 정보를 출력하고 지정된 파일에 저장합니다. 이렇게 하면 `-k` 옵션을 사용할 수 없는 `nc`에서도 동작할 것입니다.

댓글 없음:

댓글 쓰기

암호화 + base64 하고 쉘스크립트.

 #!/bin/bash # IV와 UserKey를 설정합니다 (아스키 문자열을 그대로 사용). IV="0123456789abcdef"  UserKey="0123456789abcdef" # IV와 UserKey를 16...