기본 콘텐츠로 건너뛰기

리눅스 시스템 복구 모드 사용법: 문제 해결을 위한 필수 가이드

리눅스에서의 시스템 복구 모드 사용하기 안녕하세요, mj입니다. 오늘은 리눅스 시스템의 복구 모드를 사용하는 방법에 대해 알아보겠습니다. 시스템이 정상적으로 부팅되지 않거나 문제가 발생했을 때, 복구 모드는 매우 유용한 도구가 될 수 있습니다. 이 글에서는 복구 모드를 활용한 다양한 방법과 예시를 통해 여러분이 직접 문제를 해결할 수 있도록 도와드리겠습니다. 복구 모드란? 복구 모드는 시스템이 부팅되지 않을 때, 또는 특정 문제를 해결하기 위한 환경입니다. 이 모드에서는 기본적인 시스템 기능만 로드되므로, 문제가 발생한 이유를 진단하고 수정할 수 있는 기회를 제공합니다. 복구 모드 진입 방법 리눅스에서 복구 모드에 진입하는 방법은 배포판에 따라 다를 수 있지만, 일반적으로 다음과 같은 과정을 따릅니다: 시스템을 재부팅합니다. 부팅 시 GRUB 부트로더 화면이 나타날 때, 원하는 커널 항목을 선택합니다. ‘e’ 키를 눌러 수정 모드로 들어갑니다. ‘linux’ 또는 ‘linux16’ 라인 끝에 ‘single’ 또는 ‘init=/bin/bash’를 추가합니다. ‘Ctrl + X’ 또는 ‘F10’을 눌러 부팅합니다. 복구 모드에서의 주요 작업 복구 모드에 진입한 후, 다양한 작업을 수행할 수 있습니다. 다음은 주요 작업과 각 작업의 예시입니다: 1. 비밀번호 재설정 시스템에 로그인할 수 없는 경우 비밀번호를 재설정할 수 있습니다. mount -o remount,rw / passwd 사용자이름 2. 파일 시스템 체크 파일 시스템에 문제가 발생했을 때, fsck 명령어를 사용하여 체크할 수 있습니다. fsck /dev/sda1 3. 부팅 문제 해결 부팅 문제가 발생했을 경우, grub 재설치를 통해 문제를 해결할 수 있습니다. grub-install /dev/sda update-grub 4. 서비스 시작 및 중지 특정 서비스가 문제를 일으키는 경우, 해당 서비스...

요일 확인

 

안녕하세요, MJ 입니다.
 
날짜를 입력하여 요일을 확인하는 스크립트 입니다.
이전에 bash, batch, powershell 용 스크립트를 함께 포스팅 했었는데
bash 스크립트 목록을 작성한 기념으로 사용방법을 추가하여 다시 올려봅니다.

(사용방법)

1. bash 에서 파일을 만들고, 스크립트 내용을 붙여넣습니다.

[root]# vi  /usr/local/bin/whatday
(소문자 i 를 한번 누른다)
아래 스크립트 내용을 "붙여넣기" 한다.
"ESC" 를 한번 누른다.
":wq" 를 입력하고 엔터를 치면, 파일이 저장되고 프롬프트로 나가진다.

2. 만든 파일에 CR 이 있지 않은지 확인한다.

[root]# file /usr/local/bin/whatday
>엔터를 쳤을 때, CR 이라는 문자가 포함된 로그가 확인된다면, 캐리지리턴 문자가 포함되어있는것으로 리눅스에서 스크립트를 정상실행시킬 수 없으므로 다음을 수행합니다.
[root]# dos2unix /usr/local/bin/whatday
> 이렇게 해서 캐리지리턴을 제거합니다.
dos2unix 명령어가 없는 경우 yum install dos2unix 를 수행하여 설치합니다.

3. 생성 한 파일에 실행 권한을 설정한다.

[root]# chmod 755 /usr/local/bin/whatday

4. 이제부터 whatday 명령어를 사용 할 수 있게 되었다.

"실행"
[root]# whayday 2024-09-15
Sun
 
문의사항은 댓글을 달아 주시면 성심껏 답변 드리겠습니다.

감사합니다.
  

[bash - 요일 확인]

#!/bin/bash
 
if [ ${#} -ne 1 ] && [ ${#} -ne 0 ];then
    echo "Usage: ${0} yyyy-mm-dd"
    exit 1
fi

if [ ${#} -eq 1 ];then
    INPUT=${1}
elif [ ${#} -eq 0 ];then
    echo -n "please input date (format: yyyy-mm-dd): "
    read INPUT
fi

wrong_bit=0
tmp_y=$(expr substr $INPUT 1 4)
tmp_m=$(expr substr $INPUT 6 2)
tmp_d=$(expr substr $INPUT 9 2)
seq $tmp_y $tmp_y &> /dev/null
if [ $? -ne 0 ];then
    wrong_bit=$(expr ${wrong_bit} + 4)
fi
seq $tmp_m $tmp_m &> /dev/null
if [ $? -ne 0 ];then
    wrong_bit=$(expr ${wrong_bit} + 2)
fi
seq $tmp_d $tmp_d &> /dev/null
if [ $? -ne 0 ];then
    wrong_bit=$(expr ${wrong_bit} + 1)
fi
if [ ${wrong_bit} -ne 0 ];then
    if   [ ${wrong_bit} -eq 7 ];then
        echo 'Wrong Your Input Number of Year, Month, Day.'
    elif [ ${wrong_bit} -eq 6 ];then
        echo 'Wrong Your Input Number of Year, Month.'
    elif [ ${wrong_bit} -eq 5 ];then
        echo 'Wrong Your Input Number of Year, Day.'
    elif [ ${wrong_bit} -eq 4 ];then
        echo 'Wrong Your Input Number of Year.'
    elif [ ${wrong_bit} -eq 3 ];then
        echo 'Wrong Your Input Number of Month, Day.'
    elif [ ${wrong_bit} -eq 2 ];then
        echo 'Wrong Your Input Number of Month.'
    elif [ ${wrong_bit} -eq 1 ];then
        echo 'Wrong Your Input Number of Day.'
    fi
    exit 1
fi

 
getDay()
{
yy=$(expr substr $1 1 4)
mm=$(expr substr $1 6 2)
dd=$(expr substr $1 9 2)
if [ $mm = "01" ] || [ $mm = "02" ]; then
yy=$(expr $yy - 1)
mm=$(expr $mm + 12)
fi
yC=$(expr $yy / 100)
yY=$(expr $yy % 100)
 
# 제라의 요일 공식
num=$(echo $1 | awk '{ printf("%d", ((21*'$yC'/4)+(5*'$yY'/4)+(26*('$mm'+1)/10)+'$dd'-1) % 7); }')
 
case $num in
0) echo 'Sun' ;;
1) echo 'Mon' ;;
2) echo 'Tue' ;;
3) echo 'Wed' ;;
4) echo 'Thu' ;;
5) echo 'Fri' ;;
6) echo 'Sat' ;;
esac
}
getDay ${INPUT}


댓글

가장 많이 본 글

5. 버추얼박스:설정 (+네트워크의 종류 설명)

안녕하세요 , MJ 입니다 .   우리가 실습을 하는데에 필요한 버추얼박스의 설정에 대해 설명을 합니다 .     버추얼 박스의 설정에는 종류별로 메뉴가 구분되어있습니다 . 1-1. 환경설정 1-2. 네트워크 설정 1-3. 미디어 설정       다른 설정도 존재하지만 , 필요한 일이 없을것이 예상되고 , 위 3 가지 설정에 대해서만 알고 계신다면 버추얼 박스로 실습을 하는데에 아무런 지장이 없고 또 취업을 하신 뒤에 실무에 가셔서도 문제가 될 것이 없습니다 .   환경설정 부터 확인하겠습니다 . 1-1. 환경설정 : 우리가 알아야 편한 내용은 2 가지가 있는데 VM 의 기본 저장경로 설정 " 파일 (F)" 의 환경설정 (P) … [ 단축키 : Ctrl+G] 을 누르면 환경설정 창이 보이고 , 제일먼저 확인되는 기본 머신 폴더 (M) 입니다 . VM 을 저장 할 경로를 지정하는 것인데 VM 은 가상 머신으로 디스크의 용량과는 상관없이 , 가상 컴퓨터의 정보가 저장되는 것으로 , 텍스트 파일형태로 저장되어있고 , 그 내용에는 CPU 를 몇개 사용하도록 되어있는지 , 메모리는 얼마만큼을 할당하도록 되어있는지 , 네트워크 인터페이스는 몇 개가 어떻게 설정되어있는지 ... 등 가상의 컴퓨터를 정의하는 내용의 파일이 저장되는 경로가 되고 ,   디스크 파일은 별도 미디어 설정에서 관리가 되지만 VM 을 생성하는 과정에서 만든 디스크는 VM 저장경로에 함께 생성 되어있어 사용자가 파일탐색기로 경로를 찾아가보면 파일의 사이즈로 아 이것이 디스크 파일인가보구나 하고 알 수 있습니다 .( 용량이 크고 ...

MJ. 로또의 회차별 당첨번호 API 확인 (예제포함)

안녕하세요, MJ 입니다.   로또 당첨번호를 확인하기위해 동행복권 사이트를 찾아 가거나, 포털사이트에서 검색을 할 수 있지만, 다음 주소를 브라우저에 붙여넣거나, curl 명령을 이용하여 터미널에서 손쉽게 확인할 수 있는 방법이 있어 소개를 드리려고 합니다.     < URL> https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo= < 회차번호 >     - API 주소 활용 방법 브라우저에 URL 입력하여 확인 .           >> 인터넷 주소창에 URL 을 입력       ( 윈도우 ) cmd / ( 리눅스 ) bash 터미널에서 curl 을 사용하여 확인 .( 예 : 123 회차 ) >> curl " https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo= 123 " <cmd>   <bash>         python/java/c 등 코드를 만들어서 확인 . >> 코드를 짜서 확인하는 것이 , 데이터를 가공하기도 좋고 , 앞으로 출현할 숫자를 분석하기도 좋지만 , 자신이 원하는 대로 데이터를 가공하기 위해 시간과 노력의 투자가 필요함 .       [ (API 결과 예시 ) 123 회차 조회결과 ] >> json 형식으로 공백 , 줄바꿈이 없이 순서도 제멋대로 확인되지만 (브라우저나 터미널에서 확인하면), 다음과 같은 데이터가 확인됨 .   <확인한 정보 줄맞춰봄> #######...