mount된 디렉토리를 umount 하고자 할 때, 만약 특정 사용자 & 프로세스가 해당 디렉토리를 사용하고 있으면

"device is busy" 메세지가 발생하며 umount 가 되지 않습니다.

이 경우 umount를 위해 해당 프로세스를 강제로 kill 하는 방법은 아래와 같습니다.

# fuser -ck 마운트디렉토리

ex) fuser -ck /backup

위 명령으로 프로세스를 kill 하고 umount를 재시도하면 정상적으로 mount가 해제 됩니다.

* 해당 디렉토리를 사용하는 사용자가 누구인지 확인하고 싶을 때
# fuser -cu /backup

출처 : http://faq.hostway.co.kr/Linux_ETC/4209


 

yum 패키지 관리자는 패키지 설치/삭제를 트랜잭션으로 관리하므로 예전 패키지 설치 상태로 되돌릴 수 있는 방법을 제공하고 있습니다.


yum 을 통해 패키지 설치, 변경, 삭제로 인해 내부 저장소가 변경되는 작업을 트랜잭션(transaction)이라고 하며 CentOS 6 에 내장된 yum 부터는 트랜잭션 내역을 확인하고 rollback 을 할 수 있습니다. 


트랜잭션 목록 보기

yum history 명령을 옵션없이 실행하거나 옵션에 list 를 주면 최근 트랜잭션 목록을 볼 수 있습니다.

# yum history list


ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
24 | lesstif <lesstif> | 2017-07-12 12:02 | Install | 5
23 | lesstif <lesstif> | 2017-06-28 11:38 | Install | 1
22 | lesstif <lesstif> | 2017-06-28 11:11 | Install | 15
21 | lesstif <lesstif> | 2017-06-28 11:11 | Erase | 6 EE
20 | lesstif <lesstif> | 2017-06-28 10:57 | Install | 1 EE
19 | lesstif <lesstif> | 2017-06-28 10:57 | Install | 1
18 | lesstif <lesstif> | 2017-06-19 09:30 | Install | 6
17 | lesstif <lesstif> | 2017-06-19 09:21 | I, O, U | 255 EE
16 | lesstif <lesstif> | 2017-06-19 09:18 | Install | 1
15 | lesstif <lesstif> | 2017-06-19 09:16 | I, U | 8
14 | root <root> | 2015-01-30 04:12 | Install | 3

yum history list 실행 결과

ID는 트랜잭션 번호를 의미하며 수차적이므로 총 24번의 트랜잭션이 있었음을 나타내며 Action 은 실행한 행동이며 Altered 는 트랜잭션에 의해 변경된 패키지의 갯수를 나타냅니다.


이력에 표시되는 모든 Action 항목은 아래 표에 있으며 여러 개의 Action 이 있었을 경우 I,U 같이 축약어로 표시됩니다.

Action
축약어
의미
Downgrade D 최소 한개의 패키지가 예전 버전으로 다운그레이드됨.
Erase E 최소 한개의 패키지가 삭제됨.
Install I 최소 한 개의 패키지가 설치됨.
Obsoleting O 최소 한개의 패키지가 obsolete 로 표시됨.
Reinstall R 최소 한개의패키지가 재설치됨.
Update U 최소 한개의 패키지가 새로운 버전으로 업데이트됨.
가능한 Action

Altered 필드는 변경된 패키지의 숫자와 변경 내역에 대한 기호가 표시되며 각 기호의 의미는 다음과 같습니다.

기호
의미
< 트랜잭션이 완료되기 전에 rpmdb 데이타베이스가 yum 이 아닌 외부에서 변경됨.
> 트랜잭션이 완료된 후에 rpmdb 데이타베이스가 yum 이 아닌 외부에서 변경됨.
* 트랜잭션을 종료하지 못함
# 트랜잭션이 성공적으로 종료되었지만 yum 이 0 아닌 종료 코드를 전달함.
E 트랜잭션이 성공적으로 종료되었지만 에러나 워닝이 표시됨.
P 트랜잭션이 성공적으로 종료되었지만 rpmdb 데이타베이스에 문제가 계속 존재함.
s

트랜잭션이 성공적으로 종료되었지만 --skip-broken 옵션을 사용하였으므로 어떤 패키지는 건너뜀.

Alteted 필드 의미

ID 가 24 번인 트랜잭션의 경우 Acton 이 Install 이고 Altered 항목이 5 이므로 5개의 패키지를 설치했다는 뜻입니다.

ID 가 21인 작업의 경우는 6개의 패키지를 삭제했다는 로그이며 17번인 트랜잭션은 I, O, U 이므로 설치와 업데이트를 했고 몇몇 패키지는 이제는 불필요(Obsolete)해졌다는 의미입니다.


자세한 정보 보기

해당 트랜잭션의 자세한 정보를 보고 싶으면  info 명령어 뒤에 트랜잭션 id 를 적어주면 되며  독자들도 사용하고 있는 리눅스 시스템의 트랜잭션 목록에서 상세 작업 이력을 확인해 보기 바랍니다.

아래는 22 번 트랜잭션의 상세 내용을 보는 예제입니다.

yum history info 22


Transaction ID : 22
Begin time : Wed Jun 28 11:11:52 2017
Begin rpmdb : 378:16ce599ad759e8435336997b266340324c5b0671
End time : 11:11:55 2017 (3 seconds)
End rpmdb : 393:3035f14323d91e76579575a07b6b2c04986f7800
User : lesstif <lesstif>
Return-Code : Success


Command Line : install php70w-cli php70w-common php70w-gd php70w-mbstring php70w-mysqlnd php70w-pdo php70w-fpm php70w-xml


Transaction performed with:
Installed rpm-4.11.3-21.el7.x86_64 @base
Installed yum-3.4.3-150.el7.centos.noarch @base


Packages Altered:
Dep-Install libX11-1.6.3-3.el7.x86_64 @base
Dep-Install libX11-common-1.6.3-3.el7.noarch @base
Dep-Install libXau-1.0.8-2.1.el7.x86_64 @base
Dep-Install libXpm-3.5.11-3.el7.x86_64 @base
Dep-Install libjpeg-turbo-1.2.90-5.el7.x86_64 @base
Dep-Install libpng-2:1.5.13-7.el7_2.x86_64 @base
Dep-Install libxcb-1.11-4.el7.x86_64 @base
Install php70w-cli-7.0.20-1.w7.x86_64 @webtatic

강조한 부분처럼 해당 트랜잭션으로 실행한 명령어 및 변경된 패키지의 자세한 정보를 알수 있습니다.


되돌리기(Undo)

"history undo ID" 명령어로 특정 트랜잭션을 되돌릴 수 있으며 되돌리기 작업은 수행한 트랜잭션을 이전 상태로 되돌리는 것이므로 작업한 내용과 반대의 작업을 수행하게 됩니다.


즉 트랜잭션이 패키지 설치라면 해당 트랜잭션에서 설치된 패키지는 삭제되고 트랜잭션이 패키지 삭제라면 삭제한 패키지는 설치됩니다.

되돌리기도 새로운 트랜잭션이므로 성공적으로 종료되었을 경우 별도의 트랜잭션 ID 를 갖게 되므로 전체 트랜잭션 ID 는 1 이 증가됩니다.

독자들도 수행한 트랜잭션중에 하나를 골라서 되돌리기 작업을 수행해 보기 바랍니다.


다음은 필자의 리눅스 시스템의 마지막 트랜잭션(ID: 24)을 되돌리는 예제입니다.

yum history undo 24


되살리기(Redo)

"yum history redo ID" 명령어로 특정 트랜잭션을 되살릴 수 있습니다.

위에서 24번 트랜잭션으로 5개가 설치되고 트랜잭션 되돌리기로 삭제되었습니다. 이제 24번 트랜잭션에서 설치한 패키지를 재설치하려면 "yum history redo 24" 명령어로 24번 트랜잭션을 되살릴 수 있습니다.

이 작업은 25번 트랜잭션을 되돌리는 "yum history undo 25" 번과 비슷한 결과를 가져오게 됩니다.

 

출처 : https://www.lesstif.com/pages/viewpage.action?pageId=43844113

'Works > CentOS' 카테고리의 다른 글

디스크가 HDD인지 SSD인지 확인하기  (0) 2018.10.24
강제 umount 방법 (umount : device is busy 발생시)  (0) 2018.10.22
yum 트랜잭션 및 롤백  (0) 2018.09.07
CentOS7 Locale설정  (0) 2018.05.29
SFTP log 설정  (0) 2018.02.22
dig 개념 및 사용법  (0) 2017.11.01


html 문서 내에 php 코드를 입력하여 결과를 보려는데 해당 결과가 화면에 출력이 안될 때

이경우는 웹서버의 설정(httpd.conf)  에 AddType application/x-httpd-php .html .htm

를 추가해 주면 인식이 된다.

* 계정별로 별도로 적용하고 싶다면 .htaccess 파일내에 위의 구문을 넣고 유저 디렉토리에 넣어주면
  적용된다.


CentOS 5 버전에서 더이상의 업데이트 지원이 중단된 시점에 아래와 같은 오류가 발생할 때는

# yum install packagename    
gpg key retrieval failed errno 14 http error 404 not found


yum install이 안되면서 gpg key retrieval failed errno 14 http error 404 not found 이런 에러가 나는 경우 해결책이다.


# rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

gpg key라는 CentOS RPM signing key가 없으므로 이를 받아온 뒤에 yum 명령어를 실행하면 잘 될꺼다!


밑의 링크 두군데 중 한개를 import 하면 된다!



출처: http://junp.tistory.com/155?category=325188 [Software Engineer in Park]


Mysql 4.0 ( euc_kr ) 환경에서 Mysql 5.x ( UTF-8) 환경으로 데이터 이전시

레코드에 포함된 한글 문자열이 모두 깨져서 입력된 경우 이를 올바르게

처리했던 성공사례를 기록한다.

A서버 (Mysql 4.0)

mysqldump -u root -p --default-character-set=euc_kr DB명 > DB명.sql

scp 명령을 이용하여 B서버 (Mysql 5.x) 로 파일 복사

B서버 (Mysql 5.x)

vi 에디터로 sql 파일 내의 TYPE=MyISAM 을 ENGINE=MyISAM 으로 모두 치환

iconv -c -f CP949 -t UTF-8 DB명.sql > DB명_UTF8.sql

CP949 언어셋에 대한 상세 내용은 아래 링크 참조

https://ko.m.wikipedia.org/wiki/%EC%BD%94%EB%93%9C_%ED%8E%98%EC%9D%B4%EC%A7%80_949

새롭게 생성된 UTF-8용 sql 파일을 B서버의 DB명 에 import 시킨 후 phpmyadmin 과 같은

프로그램에서 문자열이 깨지지 않는지 체크해 본다.


cgi 기반의 프로그램 실행시 Internal Server Error 가 발생하여

로그를 확인해보니 아래와 같은 에러 메시지가 발견되었다.

error while loading shared libraries: libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory

이런 경우

yum -y install compat-libstdc++-296

해주면 정상적으로 cgi가 실행될 것이다.


 

tail -f /var/log/maillog 를 실행 하고, outlook에서 로그인메뉴에서 계속 권한 요청이 반복되는 오류를 확인
아래와 같은 오류 발생

localhost dovecot: pop3-login: Login: user=<abc>, method=PLAIN, rip=115.68.62.13, lip=192.168.1.24, mpid=27289
localhost dovecot: pop3(abc): Error: chown(/home/abc//mail/.imap/INBOX, -1, 12(mail)) failed: Operation not permitted (egid=501(abc), group based on /var/mail/abc)

localhost dovecot: pop3(abc): Error: mkdir(/home/ponstory//mail/.imap/INBOX) failed: Operation not permitted
localhost dovecot: pop3(abc): Error: Couldn't open INBOX: Internal error occurred. Refer to server log for more information. [2014-01-12 16:16:38]
localhost dovecot: pop3(abc): Couldn't open INBOX top=0/0, retr=0/0, del=0/0, size=0

해결
/var/mail 밑에 계정들에 대한 권한은 chmod를 이용해 0600으로 변경한다.
ex)chmod 0600 변경할 계정 입력


Apache 2.4.x 버전대에서 아파치를 실행하려고 할 때 아래와 같은 메시지가 나온다.

AH00548: NameVirtualHost has no effect and will be removed in the next release

2.4버전 이상에서는 NameVirtualHost 설정이 더 이상 필요없다고 하니

해당 라인을 찾아서 주석처리 하거나 라인을 삭제하자.


 

CentOS 7 에서 로케일 변경하는 방법입니다.


현재 사용가능한 한글관련 로케일


# localectl list-locales | grep -i ko

ko_KR

ko_KR.euckr

ko_KR.utf8

kok_IN

kok_IN.utf8

korean

korean.euc

ru_RU.koi8r

ru_UA.koi8u

tg_TJ.koi8t

uk_UA.koi8u

utf8 로 변경


 # localectl set-locale LANG=ko_KR.utf8

수동으로 변경시는 /etc/locale.conf 파일을 만들어 아래 내용 추가


LANG=ko_KR.utf8

서버 부팅 후 로케일 설정 확인


# locale

LANG=ko_KR.utf8

LC_CTYPE="ko_KR.utf8"

LC_NUMERIC="ko_KR.utf8"

LC_TIME="ko_KR.utf8"

LC_COLLATE="ko_KR.utf8"

LC_MONETARY="ko_KR.utf8"

LC_MESSAGES="ko_KR.utf8"

LC_PAPER="ko_KR.utf8"

LC_NAME="ko_KR.utf8"

LC_ADDRESS="ko_KR.utf8"

LC_TELEPHONE="ko_KR.utf8"

LC_MEASUREMENT="ko_KR.utf8"

LC_IDENTIFICATION="ko_KR.utf8"

LC_ALL= 


# cat /etc/locale.conf



출처: http://itposting.tistory.com/62 [IT 관련 포스팅]

'Works > CentOS' 카테고리의 다른 글

강제 umount 방법 (umount : device is busy 발생시)  (0) 2018.10.22
yum 트랜잭션 및 롤백  (0) 2018.09.07
CentOS7 Locale설정  (0) 2018.05.29
SFTP log 설정  (0) 2018.02.22
dig 개념 및 사용법  (0) 2017.11.01
크론테이블에 등록 : crontab -e  (0) 2017.09.22


흔히 인터넷 광고를 볼 때 아래와 같이 100Mbps라는 문구를 자주 보셨을 겁니다.


위와 같이 광고 했을 때 흔히 다운로드 속도가 100MB/s가 나올거 같은데

실제로는 최대 12.5MB/s가 최고 속도입니다.

그럼에도 불구하고 100Mbps라고 표기하고 광고하는 건 

10이라는 숫자 보다는 100이라는 숫자가 더 크게, 더 빠르게 다가오기 때문입니다.


Mbps는 [Mega bit per second]의 약자로써, 우리가 흔히 사용하는 MB[Mega Byte]로 변환하려면

Mbps * 0.125 = MB/s와 같이 됩니다.

Mbps에 0.125를 곱해주는 이유는 1bit * 8 = 1Byte, 즉 1Byte는 8bit이기 때문입니다.(약자 bit와 Byte)

고로 Mbps * 0.125 = MB/s 대신 Mbps / 8 = MB/s도 되는 거구요.


상기와 같기 때문에 100Mbps는 100 * 0.125 = 12.5MB/s가 나오는 겁니다.

하지만 다운로드 받을때 아무리 해도 12.5MB/s가 나올 수가 없는게,

다운로드 받을때는 데이터만 받는게 아니라 헤더 등의 정보도 받기 때문에 보통 11MB/s정도의 속도가 나옵니다.


요즘 나오는 wi-fi 속도인 150Mbps와 300Mbps는 MB/s로 변환할 경우의 속도는 아래와 같습니다.

150Mbps == 18.75MB/s

300Mbps == 37.5MB/s


하지만 무선 인터넷 속도가 300Mbps라고 해서 상기와 같이 37.5MB/s가 나오지는 않습니다.

37.5MB/s는 커녕 100Mbps와 같은 12.5MB/s와 비슷한 속도가 나옵니다.

이는 대부분의 광랜 서비스 속도가 100Mbps라 그런겁니다.

굳이 비유하자면.. 내 차는 최대 430km/h를 달릴 수 있는 부가티 베이론인데

고속도로를 같이 달리는 모든 차들의 최대 속도는 150km/h이면 

430km/h의 속도를 못 내고, 같이 150km/h의 속도를 내야하는 것과 비슷합니다.


대신 내부망이 300Mbps 이상인 기가비트로 구성되어 있다면

내부 전송속도는 300Mbps 다 사용할 수 있습니다.


출처 : http://shaeod.tistory.com/274

'Works > Network' 카테고리의 다른 글

100Mbps, MB/s로 변환 방법 및 변환한 속도  (0) 2018.04.25
통신사별 DNS 서버 정리  (0) 2017.04.21
서버호스팅 트래픽 계산  (0) 2016.11.08
랜선 만들기 (Direct & Cross Cable)  (0) 2016.07.07