dev/리눅스 (23) 썸네일형 리스트형 shell script 작성 리눅스에서 shell script를 쓰는 이유는 서비스를 운영할 때 여러 명령어를 쓰는데 이에 필요한 명령어를 하나씩 호출하기 번거롭고 기억하기 어렵기 때문에 shell script를 쓰고 있습니다. 그동안 프로젝트하면서 주로 작성한 shell script를 예제로 리뷰하겠습니다. (예제로 작성한 shell script입니다.) 1번째 라인: 현재 접속한 서버의 IP 주소를 "IP"라는 변수에 저장 (hostname -I: 현재 접속한 서버 IP 조회 / cut -f 1 -d ' ': 앞의 IP 조회한 주소 중에 첫 번째 IP 추출) 2번째 라인: 현재 접속한 서버의 IP 주소를 출력 3번째 라인: shell script 실행할 때 전달한 파라미터 개수 5~8번째 라인: 파라미터 개수가 1개 이상인 경우.. 파일 디렉토리 rwx 차이 리눅스 파일과 디렉토리의 rwx의 차이는 다음과 같습니다. 권한 파일 디렉토리 r(읽기) 파일 내용 볼 수 있는 권한 디렉토리 내부를 볼 수 있는 권한 w(쓰기) 파일 내용 수정할 수 있는 권한 디렉토리 내부에 파일을 생성하거나 수정할 수 있는 권한 x(실행) 파일 실행할 수 있는 권한 디렉토리 내부에 접근할 수 있는 권한 여기서 눈여겨서 봐야할 점은 디렉토리의 r(읽기) 권한과 x(실행) 권한입니다. 디렉토리 내부를 볼 수 있는 것과 접근할 수 있는 차이가 헷갈리기 때문입니다. 위의 화면을 보면 navy계정으로 user 디렉토리 내부를 읽거나 접근하려고 합니다. 하지만 접근권한이 없기 때문에 거부된 것을 확인할 수 있습니다. (정확히 말하면 user계정을 제외한 나머지 계정은 어떠한 권한도 없으므로) .. centos IP 확인 centos에서 IP 확인하는 방법으로 많은 분들이 주로 "ifconfig"명령어를 통해서 확인했을 겁니다. 최근에 ifconfig 말고 다른 방법이 있다는 것을 알게 됐습니다. "hostname -I"명령어를 입력하면 현재 리눅스 IP를 확인할 수 있습니다. 위와 같은 방법으로 쉽게 IP를 확인할 수 있습니다. centos 방화벽 포트 개방 리눅스에서 서비스를 운영하다 보면 포트를 개방해야 하는 경우가 있습니다. 예를 들면 WEB 서버 포트인 80번 포트를 열어야 하는 경우입니다. 이럴 때 "firewall-cmd" 명령어를 사용하면 됩니다. 위의 화면을 설명하면 "firwall-cmd --zone=public --add-port=80/tcp --permanent" 명령어는 "개방된 네트워크(--zone=public)에 영원히(--permanent, 서버가 재부팅되어도 유지) 80번 포트를 추가하겠다(--add-port=80/tcp)"라는 뜻입니다. 그리고 방금 방화벽 설정이 변경되었기 때문에 방화벽을 재시작합니다.(firewall-cmd --reload) 80번 포트가 열렸는지 확인합니다.(firewall-cmd --list-all) 반대.. date 수정 리눅스 서버 운영하다보면 시간이 안 맞는 경우가 종종 있습니다. 시간이 안 맞으면 로그 확인할 때 어려움이 있을 수 있는데 이럴때 date 명령어를 사용하면 쉽게 해결할 수 있습니다. date 명령어를 입력해서 현재 시간을 확인합니다. 그리고 date 명령어에 파라미터로 변경하려는 시간을 입력합니다. 위와 같이 date 명령어를 사용하면 현재 시간을 쉽게 변경할 수 있습니다. 네트워크 포트 확인 리눅스에서 다른 서버 접속이 되는지 확인할 때 주로 ping 명령어를 씁니다. 그런데 ping 명령어는 아이피 접속만 확인할 수 있기 때문에 포트 접속 확인은 할 수 없습니다. 이런 경우 주로 telnet을 쓰는데 telnet이 설치하기 어려운 상황이라면 아래의 방법을 사용하면 됩니다. "echo > /dev/tcp/아이피주소/포트번호" 포트가 정상적으로 접속되면 위와 같이 아무것도 표시되지 않습니다. (당황할 필요 없습니다.) 만약에 포트 접속이 되지 않는다면 다음과 같이 에러 메시지가 표시됩니다. 리눅스에서 네트워크 접속 테스트할 때 사용하면 유용할 거 같습니다. centos7 network Failed to start LSB centos7 네트워크 "Failed to start LSB" 에러가 발생한 경우 해결하는 방법입니다. (에러코드: code=exited) 간단하게 명령어 몇 개만 입력하면 금방 해결할 수 있습니다. "systemctl stop NetworkManager" "systemctl disable NetworkManager" "systemctl enable NetworkManager" "systemctl start NetworkManager" "systemctl restart NetworkManager" 이렇게 5개 명령어만 입력하면 에러를 해결할 수 있습니다. 위와 같은 화면이 표출되면 네트워크가 정상적으로 돌아가고 있다는 것입니다. centos 일반계정 sudo 권한 부여 리눅스에서 일반계정으로 작업하다가 루트 권한이 필요한 경우가 있습니다. 그런 경우 일반계정에 루트 권한을 부여하는 방법을 포스팅하겠습니다. 일반 계정으로 바로 루트 권한을 부여할 수 없기에 루트 계정으로 로그인해야 합니다. 그리고 /etc/sudoers 파일을 vi 편집기로 엽니다. sudoers 파일의 "## Allow root to run any commands anywhere" 밑에 (101라인) "navy"라는 일반계정을 추가합니다. sudoers 파일 저장하면 이제 일반계정으로 루트 권한을 실행할 수 있습니다. 이제 예로 루트 권한으로 top 명령어를 실행했는데 이상 없이 잘 되었다는 것을 확인할 수 있습니다. 이전 1 2 3 다음