카테고리: Ubuntu

Ubuntu

[Ubuntu] CDPATH 값 추가하기

개요

리눅스를 쓰다보면 쉘스크립트, 특정 심볼릭 링크등을 한 특정폴더에 몰아넣고 쓰는경우가 많다.

 

이럴 때 절대경로를 치는것보단 CDPATH 값을 추가해서 쓰면 더욱 더 쉽게 경로를 이동할 수 있다.

 

적용법

 

 

/etc/profile 의 경로를 editor를 통해 불러온다. 해당 파일의 권한은 root 권한이 필요하므로 sudo 를 통해 사용했다.

 

만약, 특정 계정에만 적용을 하려면 .bashrc 를 editor로 연다.

 

열고 아래와 같이 export 를 추가한다.

 

 

이 CDPATH는 먼저 작성한 순이 가장 우선순위이다.

 

예를들어 /home/localhost/OPER 폴더와 /home/localhost/log 폴더에 동일한 폴더명이 있는경우, cd 를 통해 동일한 폴더명을 입력하거나, 명령어를 실행할 때 /home/localhost/OPER 의 폴더에 있는것으로 먼저 수행한다.

 

OPER, log, Prod, localhost 폴더를 기준으로 검사를 해보고, 없는경우에는 현재 있는 폴더로 수행한다.

 

즉, 좌측에 먼저 작성한 경로를 최우선으로, 콜론 값 뒤를 두

 

:wq 로 저장 후 아래와 같이 명령어를 입력한다.

 

 

이제 적용이 되었을 것이다. 이제 실제로 수행해보자.

 

 

수행법

 

/home/localhost 에 위와 같은 폴더가 있다고 치자.

 

그리고, 각 폴더에는 이러한 폴더들이 있다고 가정한다.

 

 

만약 내가 절대경로 /home/localhost/log/apache2 폴더의 경로를 가고 싶다라고 가정하면

 

단순하게 cd apache2 를 입력한다.

 

 

 

그럼 정상적으로 /home/localhost/log/apache2 의 경로로 연결이 된다.

 

 

 

만약, 현재 경로가 /home/localhost/log/apache2 에서 /home/localhost/OPER/html 폴더로 들어가야 한다고 가정하자.

 

일일히 cd /home/localhost/OPER/html 보다는 cd html 만 입력하면 된다.

 

 

만약, 현재 경로가 /home/localhost/OPER/html 인데, log 폴더에 있는 apacheds 에 들어가고 싶다 하면 당연히 cd log/apacheds 만 입력하면 된다.

 

 

 

정리

한마디로, 절대경로로 접근하는것 보다는 자주 사용하는 폴더들을 한곳에 모아놓고 짧은 cd 경로만 넣어서 즉시 접근할 수 있도록 해주는게 CDPATH 의 기능이다.

이처럼 고정적으로 정해진 폴더값을 통해 일일히 들어가지 말고, 편하게 접근해보자.

[Ubuntu] 우분투 16.04 고정 IP 설정하기

DHCP 보단 Static IP가 필요할 때 가 있다.

 

서버의 내부 IP가 DHCP 만료로 인해 자주 바뀌는 형태의 서버의 경우 서버의 IP가 갑자기 바뀌는 경우에는 서버 포트포워딩 정책등에 의해 막혀서 정상적으로 접속이 되지 않을 수 있다.

 

이를 막기 위해 내부 IP를 static(고정 IP)방식으로 바꿔주는 작업이 필요하다.

 

아래와 같이 우분투 16.04 기준으로 변경해볼 수 있다.

 

변경법

고정 IP 설정법

 

1.png

네트워크 설정을 하기위해서는 Windows 면 네트워크 액세스 항목들어가서 수정하면 리눅스는 그렇지 않기 때문에 터미널에서 아래와 같이 입력해야 들어갈 수 있다.

 

sudo 를 입력하지 않는경우 읽기전용으로만 열리기 때문에 반드시 작성해야 한다.

 

꼭 vi 가 아니여도 된다. vim 이나 nano 등을 사용한다면 원하는것으로 바꿔서 사용해도 된다.

 

 

2.png

대부분 ifconfig 를 입력하지 않아도 랜카드 1개만 연결되어 있기 때문에 굳이 ifconfig 를 입력하여 실제 서버 IP를 변경해야 될 Ethernet 을 찾을 필요가 없다.

 

물론 예외적인 상황은 당연히 발생할 수 있으므로 실제로 적용해야 될 Ethernet 을 우선적으로 찾고 적용하는것이 좋다.

 

수정해야 될 Ethernet 을 찾았으면 아래와 같이 설정한다.

 

 

 

설정을 다 했으면 wq 를 하여 저장하고 아래와 같이 네트워크 서비스를 재시작 한다.

 

 

 

 

다시 동적IP로 바꿔야 된다면?

간단하다. 위에 적용한 static 에 사용한 모든 것을 전부 주석처리 한 후 DHCP 를 활성화 시키고 네트워크 서비스를 재시작 하면된다.

[Ubuntu] service mysql status 입력시 Loaded 가 /dev/null 을 가리킬 때

개요

2017년 04월 03일 3시 26분 쯤 부터 블로그 접속시 “데이터베이스 연결 중 에러” 라는 메시지가 반겼다.

 

그 때, 나는 python3 관련해서 종속성 관련해서 해결 하느라고 sudo apt-get autoremove 를 했는데, 하필이면 mysql-server-core-5.7 까지 함께 날라간 것이였다.

 

이것은 급하게 deb 파일로 dpkg -i 인스톨을 통해 복구를 했지만, DB 연결 오류는 해결이 되지 않았다.

 

따라서 이것을 해결했던 방법을 공유해보자 한다.

 

/dev/null 가리키는 현상 복원하기

현재 상태

이미지 1.png

위 이미지와 같이 sudo systemctl status mysql (혹은 sudo service mysql status)를 입력하니 아래와 같이 표시되었다.

 

mysql.service 가 말 그대로 /dev/null 을 가리키기 때문에 문제가 있다는것을 알려주는 메시지 이다.

 

이미지 2.png

따라서 나는 cd /etc/systemd/system 를 입력해, system 폴더로 들어가서 ls -la 를 입력해보니 실제로 mysql.service 가 Symbolic Link 로 /dev/null 을 가리키고 있다는것을 알아냈다.

 

해결법

너무나도 간단했다. 저것의 원인은 Windows 로 설명을 하면 실행을 위한 원래의 파일은 없고, 바로가기 (lnk)파일만 존재해서 발생하는 현상이다.

 

이미지 3.png

sudo systemctl unmask mysql 를 입력해서 mysql 에 대한 심볼릭 링크를 제거한다.

이미지 4.png

제거 하고, sudo service mysql start 를 해보니 에러 메시지 없이 정상적으로 잘 실행이 되었다.

끝으로

서버를 여는 사람 입장에서 이런 문제가 발생하면 많은 골칫거리가 생기게 된다.

 

구글링을 통해 찾아내는것이 가장 최선이라고 판단을 한다.

 

또한, 서버를 열면서 아직 부족하다고 느낀점이 많았기에, 더욱 더 열심히 리눅스를 배워야 겠다고 생각한다.

 

그리고, 항상 백업을 생활화 하는것이 무엇보다 중요하다고 본다. 적용과 원복은 뗄 수 없는 관계이며, 백업은 필수다.

 

나와 비슷한 /dev/null symbolic link 문제로 고통받는 사람이 없길…