mariadb-10.0.15 CentOS 7 소스
CentOS 7 를 위한 mariadb-10.0.15 버전 입니다. 10.0.14 버전의 보안 패치를 적용하고 systemd 를 위한 스크립트가 포함되어 있습니다.
다운로드: http://linux.systemv.pe.kr/files/mariadb-10.0.15.tar.gz
설치방법: Mariadb 10 소스 설치
CentOS 7 를 위한 mariadb-10.0.15 버전 입니다. 10.0.14 버전의 보안 패치를 적용하고 systemd 를 위한 스크립트가 포함되어 있습니다.
다운로드: http://linux.systemv.pe.kr/files/mariadb-10.0.15.tar.gz
설치방법: Mariadb 10 소스 설치
Bash 쉘은 명령어 히스토리 기능을 제공 합니다. history 명령어를 입력하면 지금까지 사용했던 Bash 명령어들이 모두 보여 줍니다.
이러한 기능은 사용자 홈 디렉토리에 ‘.bash_history’ 파일에 기록되어 집니다. 그러나 여러 사람이 사용하는 서버에서 각 사용자 홈 디렉토리에 히스토리를 남기기 보다는 리눅스의 syslog 에 남기게 함으로써 사용자가 못된 일을 하는지 않하는지를 감시하도록 하면 좋을 것입니다.
이 문서는 Bash History 를 Syslog 에 남기기 에 대한 것입니다.
1. logger 를 이용한 방법
logger 는 쉘 명령어를 syslog 에 적도록하는 모듈 입니다. 이를 이용하면 수동으로 syslog 에 기록을 남기게 할 수 있습니다. 이를 이용해서 다음과 같이 /etc/profile.d/cmd.sh 파일을 작성 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
function history_to_syslog { declare cmd who=$(whoami) cmd=$(history 1) TTY=`tty` HISNAME="`basename $TTY`" ip=`who |grep pts/${HISNAME} |cut -f 2 -d \(|cut -f 1 -d \)` logger -p local7.notice -- IP=$ip USER=$who, PID=$$, PWD=$PWD, CMD=$cmd } trap history_to_syslog DEBUG || EXIT HISTSIZE=10000 HISTFILESIZE=1000000 HISTTIMEFORMAT="%F %T " export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE HISTTIMEFORMAT INPUTRC declare -r HISTFILE |
이제 이를 Source 해 줍니다.
1 |
source /etc/profile.d/cmd.sh |
2. rsyslog 설정
다음과 같이 설정을 해줍니다.
1 2 3 |
#user command log local7.notice /var/log/bash_history local7.notice @192.168.0.2:514 # udp transfer |
이렇게하면 ‘/var/log/bash_history’ 파일에 Bash 쉘 히스토리가 남기며 ‘192.168.0.2’ 서버에 로그를 전송합니다.
CentOS 7 은 많은 변화가 있었지만 그중 하나가 네트워크 인터페이스 이름 입니다.
지금까지 네트워크 인터페이스 이름은 eth0, eth1 식으로 고정되어 있었습니다. 하지만 CentOS 7 부터는 바이오스 장치 이름을 조합해서 생성됩니다. 다시 말해서 각 서버마다 네트워크 인터페이스 카드가 모두 동일하다고 할지라도 CentOS 7 에서의 네트워크 인터페이스 이름은 모두 다를 수가 있다는 겁니다.
이 문서는 CentOS 7 에서 네트워크 인터페이스 이름 바꾸기 에 대한 것입니다.
1. 상태확인
CentOS 7 에서의 네트워크 인터페이스 이름은 다음과 같습니다.
1 2 3 4 5 6 7 8 9 |
]# ifconfig enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.105 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::a00:27ff:fe97:3935 prefixlen 64 scopeid 0x20<link> ether 08:00:27:97:39:35 txqueuelen 1000 (Ethernet) RX packets 37862 bytes 29870696 (28.4 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 6939 bytes 513516 (501.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 |
enp0s3 으로 나옵니다. 네트워크 인터페이스 설정 파일도 이름과 동일하게 생성 됩니다.
1 2 |
]# ls -lh /etc/sysconfig/network-scripts/ifcfg-enp0s3 -rw-r--r--. 1 root root 321 9월 22 13:50 /etc/sysconfig/network-scripts/ifcfg-enp0s3 |
2. eth0 로 바꾸기
바꾸는 방법은 grub 에서 바이오스장치이름을 네트워크 인터페이스 이름으로 사용하지 않겠다고 선언하는 것입니다. 커널이 업그레이드되면 grub 에 파라메터값을 다시 해줘야 하는 불편함을 없애기위해서 grub 의 기본설정을 변경해 줍니다.
1 2 3 4 5 6 7 8 |
]# vim /etc/default/grub GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="vconsole.font=latarcyrheb-sun16 vconsole.keymap=ko crashkernel=auto rhgb quiet net.ifnames=0 biosdevname=0" GRUB_DISABLE_RECOVERY="true" |
핵심은 ‘GRUB_CMDLINE_LINUX’ 에 ‘net.ifnames=0 biosdevname=0’ 를 추가하는 것입니다. 그리고 다음과 같이 grub2 를 다시 만들어 줍니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-3.10.0-123.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-123.el7.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-123.9.3.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-123.9.3.el7.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-123.8.1.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-123.8.1.el7.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-123.6.3.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-123.6.3.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-babecd961e9a465686311e3f5930f25e Found initrd image: /boot/initramfs-0-rescue-babecd961e9a465686311e3f5930f25e.img done |
이제 네트워크 인터페이스 파일을 다음과 같이 바꿔 줍니다.
1 2 |
]# cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]# mv ifcfg-enp0s3 ifcfg-eth0 |
이제 재부팅을 하면 네트워크 인터페이스 이름이 eth0 로 올라온것을 볼 수 있습니다.
Nvidia 는 AMD 와 함께 그래픽 카드 시장을 양분하고 있는 회사 입니다. 어느쪽이 더 좋은지는 각 회사에 새로운 제품이 출시될때마다 달라질만큼 우열을 가리기 힘듭니다.
Nvidia 와 AMD 는 리눅스를 위한 드라이버도 만들어서 배포하는데 CentOS 7 에서 Nvidia Driver 를 설치하는 방법에 대한 것입니다. 사실 AMD HD2600 을 썼었는데 AMD 에서 더 이상 드라이버를 업데이트를 해주지 않아 그래픽 가속을 쓸수 없었는데, 몇일전에 Nvidia Geforce GTS 450 이 손에 들어와서 설치하는 과정을 정리한 글이기도 합니다.
1. Requirement
Nvidia Driver 를 설치하기 위해서는 컴파일을 위한 의존성 패키지가 설치되어 있어야 합니다. 의존성 패키지는 다음과 같이 설치하시면 됩니다.
1 |
yum install kernel-devel kernel-headers gcc make |
또, Nvidia 를 비롯한 그래픽 카드 드라이버는 커널에 의존적이기 때문에 커널이 바뀌면 재컴파일 설치를 해줘야 합니다. 따라서 이왕설치하는거면 최신 커널에 설치를 하는게 좋을 것입니다. 다음과 같이 커널을 업그레이드 해주고 시스템을 리붓해줍니다.
1 2 |
yum update kernel kernel-devel reboot |
2. Nouveau driver 제거
CentOS 7 에도 Nvidia Driver 가 설치되어 있습니다. 오픈소스 드라이버인데, 여기에는 Nouveau 가 활성화되는 모듈이 포함됩니다. Nvidia Driver 는 이 Nouveau 모듈과 충돌이 나서 설치하는데 지장이 생깁니다.
이는 다음과 같이 확인이 가능 합니다.
1 2 3 4 5 6 7 8 9 10 |
]# lsmod | grep nouv nouveau 974305 1 mxm_wmi 13021 1 nouveau wmi 19070 2 mxm_wmi,nouveau video 19267 1 nouveau i2c_algo_bit 13413 1 nouveau ttm 83948 1 nouveau drm_kms_helper 52758 1 nouveau drm 297829 3 ttm,drm_kms_helper,nouveau i2c_core 40325 5 drm,i2c_piix4,drm_kms_helper,i2c_algo_bit,nouveau |
부팅할때에 nouveau 를 메모리에 올리못하게 하면 이 문제는 해결 됩니다. 다음과 같이 blacklist 에 적어줍니다.
1 2 |
]# vim /etc/modprobe.d/nvidia-disable-nouveau.conf blacklist nouveau |
위와같이 파일을 작성하고 저장한 후에 시스템을 리붓해 줍니다.
3. 설치
Nvidia Driver 를 Nvidia 홈페이지에서 다운받습니다. 그리고 CentOS 7 을 그래픽 모드가 아니 터미널 모드로 전환해주고 다운받은 파일을 실행해 줍니다.
1 2 3 4 |
# init 3 으로 전환 init 3 # 다운로드한 Nvidia Driver 설치 실행 bash NVIDIA-Linux-x86_64-340.58.run |
4. 마치며
nouveau 비활성화는데에는 grub 을 이용할 수도 있습니다. 부팅할때에 grub 에 옵션으로 주면 비활성화를 할 수 있는데, CentOS 7 에선 grub2 를 사용하고 grub2 에서는 공통부분을 /etc/default/grub 에 “rdblacklist=nouveau” 를 추가해줍니다.
1 2 3 4 5 6 7 |
GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="ipv6.disable=1 vconsole.font=latarcyrheb-sun16 vconsole.keymap=ko crashkernel=auto rhgb quiet rdblacklist=nouveau" GRUB_DISABLE_RECOVERY="true" |
“GRUB_CMDLINE_LINUX” 에 추가해줍니다.
그리고 grub2 를 갱신해줍니다.
1 |
grub2-mkconfig -o /boot/grub2/grub.cfg |
이렇게하면 blacklist 파일을 작성하지 않고도 nouveau 모듈을 부팅때마다 비활성화 할 수 있습니다.