Shell 8

[Linux] ssh 접속 시 This account is currently not available 해결 방법

“This account is currently not available” 메시지는 사용자가 로그인 쉘에 접근할 수 없을 때 발생합니다. 이 문제를 해결하기 위해서는 사용자 계정에 유효한 로그인 쉘을 지정해야 합니다. 다음 단계를 따라 해결할 수 있습니다:현재 사용자의 쉘 확인: 사용자 계정의 현재 쉘을 확인합니다.이 명령어는 /etc/passwd 파일에서 해당 사용자의 정보를 검색하고, 사용자의 로그인 쉘을 보여줍니다.cat /etc/passwd | grep 사용자이름쉘 변경: 사용자 계정에 대해 유효한 쉘(예: /bin/bash)을 지정합니다.chsh 명령어는 사용자의 로그인 쉘을 변경합니다. -s 옵션 뒤에 원하는 쉘의 경로를 지정합니다.sudo chsh -s /bin/bash 사용자이름변경 확인:..

Linux 2024.05.15

[Linux] nc 명령어로 기관 통신 모니터링 스크립트

타임아웃을 3초로 설정하여 기관별 통신테스트 하는 스크립트입니다.#!/bin/bash# 기관 목록을 배열로 정의합니다.declare -A institutions=( ["기관1"]="123.45.67.89:80" ["기관2"]="98.76.54.32:80" ["기관3"]="135.79.86.42:80" ["기관4"]="246.80.135.79:80" ["기관5"]="192.168.1.1:80")# 비정상적인 기관들의 목록을 저장할 변수를 초기화합니다.unhealthy_institutions=""# 각 기관의 통신 상태를 확인합니다.for institution in "${!institutions[@]}"; do ip_port=(${institutions[$insti..

Linux 2024.05.02

[Linux] ulimit 에 대한 다양한 옵션과 설명

ulimit은 리눅스 및 유닉스 시스템에서 프로세스에 대한 리소스 제한을 설정하는 명령어입니다. 이를 통해 시스템 관리자는 각 사용자 또는 프로세스에 대해 할당된 자원을 제어할 수 있습니다. ulimit은 사용자 레벨 및 시스템 레벨의 리소스 제한을 관리합니다. 리눅스에서는 ulimit 명령어를 사용하여 현재 쉘 세션 또는 서브쉘에서 프로세스에 대한 리소스 제한을 설정할 수 있습니다. 여기에는 파일 디스크립터의 최대 개수, 코어 덤프 크기, 프로세스 가용 메모리 등이 포함됩니다. ulimit은 사용자 레벨과 시스템 레벨에서 설정할 수 있으며, 각각 soft limit과 hard limit으로 구성됩니다. soft limit은 사용자가 설정한 제한을 나타내며, hard limit은 soft limit의 최..

Linux 2023.12.06

[Jenkins] jenkins pipline script 에서 dir 사용 방법

Jenkins Pipeline 스크립트에서 dir 스텝을 사용하면 특정 디렉토리 내에서 명령을 실행하거나 스크립트 블록을 실행할 수 있습니다. dir 스텝을 사용하여 디렉토리를 변경하려면 다음과 같이 사용할 수 있습니다: pipeline { agent any stages { stage('Example Stage') { steps { script { // 디렉토리 변경 dir(path: 'path/to/your/directory') { // 해당 디렉토리 내에서 명령어 실행 sh 'ls -l' sh 'echo "Hello from the specified directory"' // 다른 명령어 추가 가능 } } } } } } 위의 예제에서는 dir 스텝을 사용하여 'path/to/your/directory..

CI-CD 2023.11.29

[Jenkins] jenkins pipline script 에서 sh ''' 사용 방법

Jenkins Pipeline에서 sh 스텝을 사용하면 쉘 명령어를 실행할 수 있습니다. 이 스텝을 사용하여 여러 명령어를 실행하려면 Groovy의 다중 줄 문자열 문법(''')을 사용합니다. 아래는 Jenkins Pipeline 스크립트에서 sh 스텝과 '''를 사용하는 방법에 대한 예제입니다: pipeline { agent any stages { stage('Example Stage') { steps { script { // 여러 줄 명령어 실행을 위해 ''' 사용 sh ''' echo "Hello, World" ls -l # 다른 명령어 추가 가능 ''' } } } } } 위의 예제에서는 sh 스텝 내부에서 '''로 둘러싼 다중 줄 문자열을 사용하여 여러 명령어를 실행하고 있습니다. 각 명령어는 다..

CI-CD 2023.11.28

[Linux] C언어로 C 파일 컴파일 및 실행

Hello World 프로그램 (hello.c): #include int main() { printf("Hello, World!\n"); return 0; } Makefile (Makefile): CC=gcc CFLAGS=-Wall all: hello hello: hello.c $(CC) $(CFLAGS) -o hello hello.c clean: rm -f hello 실행 스크립트 (run.sh): #!/bin/bash make ./hello 위의 파일들을 동일한 디렉토리에 저장하고, 터미널에서 아래 명령어를 실행하여 "Hello, World!"를 출력할 수 있습니다: chmod +x run.sh # 실행 권한 부여 ./run.sh 이것은 C 프로그램을 컴파일하고 실행하기 위한 간단한 스크립트입니다. ..

Linux 2023.11.21

[Linux] 중복 파일을 확인하는 스크립트

때론 운영하다가 중복파일을 추출하는 스크립트입니다. 참고만 하고, 필요한 부분은 보완하도록 하자! 예제1 #!/bin/bash # 중복된 파일을 확인하는 스크립트 # 검사할 디렉토리를 지정합니다. directory_to_check="/root/mnt" # 중복된 파일을 찾을 함수를 정의합니다. find_duplicate_files() { # 모든 파일을 검색하고 파일 크기와 함께 정렬합니다. find "$directory_to_check" -type f -exec stat -c "%s %n" {} \; | \ awk '{if (a[$1]) print $1, $2; else a[$1]=$2}' | \ sort -n > duplicate_files.txt # 중복된 파일 목록을 출력합니다. echo "중복된..

Linux 2023.09.22

[Linux] 원본폴더와 백업폴더의 파일 비교 후 다른 점 결과 출력

리눅스에서 원본폴더와 백업폴더 안에 모든 파일을 비교하여, 각 항목마다 결과파일을 각각 생성하는 스크립트다. 1. 파일 개수 비교 2. 각 파일별 용량 비교 및 내용 비교 결과 3. 원본과 백업의 폴더 및 파일이 추가/삭제된 목록 #!/bin/bash # 결과 파일 이름 설정 file_count_result="file_count_result.txt" comparison_result="comparison_result.txt" changes_result="changes_result.txt" # 원본 폴더와 백업 폴더 경로 설정 src_dir="/home/orangepi/Downloads/comp1" backup_dir="/home/orangepi/Downloads/comp2" # 1. 파일 개수 비교하고, ..

Linux 2023.09.21