난이도:★(쉬움)

학습범위:★(적당함)

학습기간: 3일

 

리눅스마스터 1급 난이도 자체는 굉장히 쉬운편입니다.

물론 현직장에서 리눅스를 다루고 있긴 하지만 그걸 감안하더라도 쉬운편이네요

책은 시중에 돌아다니는 책 아무거나 하나 기본서로 쭉 훑어보신후에

이전 기출문제들을 한번씩 풀어보시는걸 추천드립니다.

 

시험문제가 거의 예전에 나왔던걸 조금만 바꿔서 내거든요

문제,답도 똑같은 경우도 좀 있었으니 이전 시험기출만 달달 외워서 가도 합격할겁니다.

 

실기시험의 경우에는 저번주가 신청기간이였는데 까먹고 안해서 놓쳤네요...

 

실기도 시험보면 후기 올릴예정입니다. 세달뒤에..

스크립트로 본딩하기

 

-스크립트내용-

#!/bin/bash

N_DIR=/etc/sysconfig/network-scripts/
read -p "device_name : " device
read -p "IPADDR : " IP
read -p "NETMASK : " NETMASK
read -p "GATEWAY : " GATEWAY

cp ${N_DIR}ifcfg-${device}0 ${N_DIR}${device}0.back
cp ${N_DIR}ifcfg-${device}1 ${N_DIR}${device}1.back

echo "DEVICE=${device}0" > ${N_DIR}ifcfg-${device}0
echo "TYPE=Ethernet" >> ${N_DIR}ifcfg-${device}0
echo "ONBOOT=yes" >> ${N_DIR}ifcfg-${device}0
echo "NM_CONTROLLED=no" >> ${N_DIR}ifcfg-${device}0
echo "BOOTPROTO=none" >> ${N_DIR}ifcfg-${device}0
echo "SLAVE=yes" >> ${N_DIR}ifcfg-${device}0
echo "MASTER=bond0" >> ${N_DIR}ifcfg-${device}0


echo "DEVICE=${device}1" > ${N_DIR}ifcfg-${device}1
echo "TYPE=Ethernet" >> ${N_DIR}ifcfg-${device}1
echo "ONBOOT=yes" >> ${N_DIR}ifcfg-${device}1
echo "NM_CONTROLLED=no" >> ${N_DIR}ifcfg-${device}1
echo "BOOTPROTO=none" >> ${N_DIR}ifcfg-${device}1
echo "SLAVE=yes" >> ${N_DIR}ifcfg-${device}1
echo "MASTER=bond0" >> ${N_DIR}ifcfg-${device}1



echo "DEVICE=bond0" > ${N_DIR}ifcfg-bond0
echo "TYPE=Ethernet" >> ${N_DIR}ifcfg-bond0
echo "ONBOOT=yes" >> ${N_DIR}ifcfg-bond0
echo "NM_CONTROLLED=no" >> ${N_DIR}ifcfg-bond0
echo "BOOTPROTO=static" >> ${N_DIR}ifcfg-bond0
echo "USERCTL=no" >> ${N_DIR}ifcfg-bond0
echo "IPADDR=${IP}" >> ${N_DIR}ifcfg-bond0
echo "NETMASK=${NETMASK}" >> ${N_DIR}ifcfg-bond0
echo "GATEWAY=${GATEWAY}" >> ${N_DIR}ifcfg-bond0
echo "BONDING_MASTER=yes" >> ${N_DIR}ifcfg-bond0

echo "alias bond0 bonding" > /etc/modprobe.d/bonding.conf
echo "options mode=1 miimon=100" >> /etc/modprobe.d/bonding.conf

 

-스크립트실행시-

device_name 쪽은 장치명을 적습니다. [ ex ) eth ]

IPADDR 쪽은 bond에 들어갈 ip주소를 적습니다. [ ex ) 192.168.189.10 ]

NETMASK 쪽은 NETMASK를 적습니다 [ ex ) 255.255.255.0 ]

GATEWAY 쪽은 GATEWAY IP를 적습니다 [ ex ) 192.168.189.254 ]

[root@centos6 ~]# sh bonding.sh
device_name : eth
IPADDR : 192.168.189.10
NETMASK : 255.255.255.0
GATEWAY : 192.168.189.254
[root@centos6 ~]# service network restart

 

-스크립트 실행후 확인-

bond0으로 IP올라온것 확인가능

기존의 네트워크 설정은 네트워크 설정 경로의 .back파일로 만들어집니다. [ ex ) eth0.back , eth1.back ]

[root@centos6 ~]# ifconfig
bond0     Link encap:Ethernet  HWaddr 08:00:27:77:7A:F5
          inet addr:192.168.189.10  Bcast:192.168.189.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe77:7af5/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:73 errors:0 dropped:0 overruns:0 frame:0
          TX packets:62 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:9587 (9.3 KiB)  TX bytes:10370 (10.1 KiB)

eth0      Link encap:Ethernet  HWaddr 08:00:27:77:7A:F5
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:1016 errors:0 dropped:0 overruns:0 frame:0
          TX packets:629 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:86154 (84.1 KiB)  TX bytes:66298 (64.7 KiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:77:7A:F5
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:5 errors:0 dropped:0 overruns:0 frame:0
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:300 (300.0 b)  TX bytes:4864 (4.7 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:28 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2180 (2.1 KiB)  TX bytes:2180 (2.1 KiB)

 

가끔식 네트워크 시작이 0이아닌 1로 되는 경우도있으니 상황에 따라 수정해주세요

 

 

난이도 : ★ (쉬움)

학습범위 : ★ (많지않음)

학습기간 : 3일  (리눅스 자체를 처음접하는경우 일주일 정도 잡는거 추천합니다)

 

리눅스마스터의 경우 1급과 2급으로 나뉘는데

실기는 아직 보지 않고 필기만 보았지만 만약 누군가 1급,2급 둘중 어떤걸 볼까 라고 물어본다면

바로 1급을 추천할것같네요

우선 2급 난이도가 어느정도 인지는 모르겠지만 1급도 충분히 쉬운편이기 때문에 바로 1급으로 보는게 좋아보입니다.

 

-공부방법-

사실 현재 업무에서 리눅스를 쓰고 있기 때문에 좀더 수월했습니다.

시중에 돌아다니느 리눅스마스터 1급책으로 공부를 하였고 생각보다 양이 적어서 책자체는 다보는데 이틀정도 걸렸습니다.

범위가 그렇게 넓지가 않더라구요

근데 막상 기출문제를 보면 책에 없는내용이 거의 50%입니다.

그러니까 우선은 책에 나온대로 리눅스(centos)를 설치하여 하나씩 따라해서 대충 파악한후에

기출문제 위주로 공부하시는걸 추천드립니다.

리눅스마스터의 경우 시험문제가 다 공개되기 때문에 쉽게 찾으실 수 있어요

이번에 시험 볼때 느낀점이 그냥 이전 기출문제들에서 살짝만 바꿔서 냈구나 였습니다.

거의 그대로 냈다고 봐도 되는문제도 꽤 있었구요.

 

결론은 시중에 돌아다니는 책으로 리눅스 대충 파악해둔후 기출문제위주로 공부하시면 됩니다.

 

'시험,자격증' 카테고리의 다른 글

[독학사] 컴퓨터과학 2단계 시험 후기  (1) 2020.05.24

csv파일을 이용하여 mysql 혹은 mariadb의 테이블에 값 insert하기

 

[테이블정보]

MariaDB [MOGI]> desc member;
+----------+-------------+------+-----+-----------+----------------+
| Field    | Type        | Null | Key | Default   | Extra          |
+----------+-------------+------+-----+-----------+----------------+
| no       | int(11)     | NO   | PRI | NULL      | auto_increment |
| name     | char(20)    | YES  |     | NULL      |                |
| user_id  | varchar(20) | YES  | UNI | NULL      |                |
| password | varchar(40) | YES  |     | qwe123!@# |                |
| in_date  | datetime    | NO   |     | NULL      |                |
+----------+-------------+------+-----+-----------+----------------+
5 rows in set (0.001 sec)

 

1.csv 파일 생성

csv 파일명 : test.csv

1,홍길동,user1,qwe123!@#
2,정약용,user2,qwe123!@#
3,이순신,user3,qwe123!@#
4,장보고,user4,qwe123!@#

 

2.mysql 접속후 쿼리입력

LOAD DATA LOCAL INFILE '/root/test.csv'  #csv파일 경로 입력
INTO TABLE member						 #insert할 테이블명 입력
CHARACTER SET utf8                       #한글있을시 깨질수 있으니 utf8사용
FIELDS
TERMINATED BY ','                        # csv파일 컬럼 구분값 입력 ','
LINES TERMINATED BY '\n'                 # csv파일 종료 기준값 '엔터'
(@no,@name,@user_id,@password)           # csv파일 순서대로 이름 입력
set no = @no,
     name = @name,
     user_id = @user_id,
     password = @password,
     in_date = now();

 

-쿼리 입력후 확인

 

MariaDB [MOGI]> select * from member;
+----+-------+---------+-----------+---------------------+
| no | name  | user_id | password  | in_date             |
+----+-------+---------+-----------+---------------------+
|  1 | test1 | user1   | qwe123!@# | 2020-05-31 23:40:16 |
|  2 | test2 | user2   | qwe123!@# | 2020-05-31 23:40:16 |
|  3 | test3 | user3   | qwe123!@# | 2020-05-31 23:40:16 |
|  4 | test4 | user4   | qwe123!@# | 2020-05-31 23:40:16 |

 

 

이처럼 csv파일을 입력하여 db에 값을 insert할 수 있다.

 

[환경]

centos6

호스트 1 - test-active

호스트 2 - test-standby

 

heartbeat을 이용한 이중화 하기

참고로 cent7부터는 heartbeat을 이용하지 않습니다.

 

 

1.heartbeat 설치 ( 아래 명령어 순서대로 입력 )

- wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

- rpm -ivh epel-release-latest-6.noarch.rpm

- sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/epel.repo

- yum --enablerepo=epel -y install heartbeat

wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm                                                                      --2020-05-31 20:27:20--  https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
Resolving dl.fedoraproject.org... 209.132.181.23, 209.132.181.24, 209.132.181.25
Connecting to dl.fedoraproject.org|209.132.181.23|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 14540 (14K) [application/x-rpm]
Saving to: `epel-release-latest-6.noarch.rpm'

100%[==================================================================================================================================================================

2020-05-31 20:27:21 (95.8 KB/s) - `epel-release-latest-6.noarch.rpm' saved [14540/14540]

[root@test-active ~]# rpm -ivh epel-release-latest-6.noarch.rpm
경고: epel-release-latest-6.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
준비 중...               ########################################### [100%]
   1:epel-release           ########################################### [100%]
[root@test-active ~]# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/epel.repo
[root@test-active ~]# yum --enablerepo=epel -y install heartbeat

 

2.heartbeat 설정 복사

- cp /usr/share/doc/heartbeat-*/ha.cf /etc/ha.d/

- cp /usr/share/doc/heartbeat-*/authkeys /etc/ha.d/

- cp /usr/share/doc/heartbeat-*/haresources /etc/ha.d/

[root@test-active ~]# cp /usr/share/doc/heartbeat-*/ha.cf /etc/ha.d/
[root@test-active ~]# cp /usr/share/doc/heartbeat-*/authkeys /etc/ha.d/
[root@test-active ~]# cp /usr/share/doc/heartbeat-*/haresources /etc/ha.d/

 

3.1. heartbeat 설정(authkeys)

- authkeys 파일은 서로간의 키를 맞춰주는 설정 파일이다. 서로 동일하게 입력하면 된다.

 

- vi /etc/ha.d/authkeys  (아래는 예시이며 원하는 키 입력)

#       methods and/or keys.
#
#
#       sha1 is believed to be the "best", md5 next best.
#
#       crc adds no security, except from packet corruption.
#               Use only on physically secure networks.
#
#auth 1
#1 crc
#2 sha1 HI!
#3 md5 Hello!

auth 2
2 sha1 mogi

3.2. heartbeat 설정 (ha.cf)

- ha.cf 파일은 heartbeat 구동방식에대한 전반적인 설정을 하는 파일이다.

 

- vi /etc/ha.d/ha.cf (아래는 예시이며 원하는 대로 설정)

debugfile /var/log/ha-debug.log   #디버그 로그 경로 설정
logfile /var/log/ha.log           #로그 경로 설정
keepalive 2                       #상대 노드에 신호 보내는 시간텀
deadtime 15                       #상대노드가 죽었다고 판단하는 시간
auto_failback off				  #스탠바이가 기동중일때 액티브가 복구되면 자동으로 active로 vip가 넘어갈지 설정
ucast eth0 192.168.131.3          #신호 보낼 경로
node test-active                  #master node설정
node test-standby                 #slave noede 설정
udpport 694						  #신호보낼 port 설정

 

이번에 독학사 컴퓨터과학 2단계 시험을 봐서 후기씁니다.

 

난이도 : ★★ (쉬움)  

학습범위 : ★ (조금 많아서 귀찮음)

학습시간 : 2일

 

저도 그랬고 시험보기 전에 가장 궁금한건 시험 난이도인데

우선 시험 난이도 자체는 쉬운편입니다.

컴퓨터과학쪽이 비주류인건지 뭔지는 모르겠는데 시험에 대한 정보가 그닥 많지 않아서 어떤식으로

나오게 되는지 감이 안잡히는데 감 잡을 필요도 없이 그냥 쉽게나옵니다.

 

문제 보기들은 기억이 나지 않는데 대충 이런식으로 나옵니다.

 

1.다음중 스택의 특징이 아닌것을 고르시오

(1). 선입선출 방식이다.

(2). 후입선출 방식이다.

(3). 배열로 구현이 가능하다.

(4). 연결리스트로 구현이 가능하다. 

 

2. 10진수 8을 2진수로 바꾸시오.

(1). 0011

(2). 1111

(3). 0101

(4). 1000

 

어떤 과목이던간에 문제의 난이도수준이 총 40문제중에 30문제정도는 이정도수준입니다.

나머지 10문제도 그냥 책봤으면 충분히 풀 수있는 수준이구요.

 

저는 독학사로 학위를 따려기보다는 학점은행제용으로 학점따려고 시험본거기 때문에 다 공부하진 않고

자료구조,논리회로설계,컴퓨터시스템구조 만 공부했습니다.

 

일단 제 학습시간은 2일이긴한데 그렇다고 2일이면 충분한건 아닙니다.

아무생각없이 놀다가 막바지에 한거라...

보통 한과목당 400페이지 정도됩니다.

 

그래서 시간이 부족하기 때문에 한과목당 200페이지씩만 공부하고 시험봤습니다.

만약 6과목시험보실거면 적어도 일주일은 잡고 하시기 바랍니다.

그러면 거의 90%이상 다 통과할거라 봅니다.

 

그리고 한두과목만 하는것보다 여섯과목을 다하는게 시너지 효과도 있어서 좋아요

과목명은 다다르지만 겹치는 내용이 상당히 많기때문에 한과목 끝내고 나서 다른과목할때

훨씬 수월하게 읽힙니다.

 

 

책 출판사가 두군데로 나뉘는데 그냥 아무거나 사서 보시면 될것같아요

제가 둘다 봤는데 둘다 비슷비슷합니다.

'시험,자격증' 카테고리의 다른 글

[리눅스마스터] 리눅스마스터 1급 후기(필기)  (0) 2020.06.21

리눅스 + 파이썬 이용해서 메일 보내는 방법이다.

 

- 우선 리눅스에서 아무이름으로 아래 내용처럼 .py파일을 만들어준다

#!/usr/bin/python
# -*- coding: utf-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders


# 아이디 비밀번호 정보
email_from = '???@naver.com'		#보내는이 메일주소
email_to = '94.mogi@gmail.com'	#받는이 메일주소
naver_id ='????'					#네이버 아이디 입력
naver_pass = 'qwe123!@#'			#패스워드 입력

# 제목 입력
subject = '테스트 메일'

msg = MIMEMultipart()
msg['From'] = email_user
msg['To'] = email_send
msg['Subject'] = subject

# 본문 내용 입력
body = '테스트 메일입니다.'
msg.attach(MIMEText(body,'plain'))

#첨부 파일 보내기
filename='aa.txt'		#첨부 파일 이름 이처럼 이름만쓰려면 같은 경로에 파일있어야됨 아니면 절대경로입력
attachment  =open(filename,'rb')

part = MIMEBase('application','octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition',"attachment; filename= "+filename)
msg.attach(part)


text = msg.as_string()
server = smtplib.SMTP('smtp.naver.com',587)		#네이버 smtp서버 지정
server.starttls()
server.login(naver_id,naver_pass)

server.sendmail(email_from,email_to,text)
server.quit()
~

 

- 아래 이미지를 보면 test.py 랑 aa.txt 파일이 있다 ./test.py 명령어를 통해 실행시켜주면 메일발송

- './파일이름' 방식으로 실행시키는데 권한이 없어서 안될수도 있다 그럴땐 'chmod +x 파일명' 명령어로 실행권한을 추가해준다

 

- 지메일 확인시 메일 도착한걸 확인할수 있다.

 

- 이후 crontab -e 명령어를 통해 아래와 같이 매일 오전 9시에 실행시키게 하면 매일 자동발송 가능

crontab -e
00 09 * * * ./tmp/test.py

 

 

 

혹시나 위와같이 했는데 메일이 전송 안된다면 네이버 메일에 smtp 허용이 되어 있는지 확인이 필요하다

네이버 메일 설정쪽에서 smtp 사용함으로 설정후 확인하면됨 아마 허용되있는게 디폴트값이였던것같다.

[환경]

cent 7

 

쉘 스크립트를 이용해서 주기적으로 DB백업하는 스크립트 예제

#!/bin/bash

DT=`date '+%Y%m%d'`
BACK_DIR='/tmp/BACKUP'

#BACKUP 디렉터리가 없을경우 디렉터리 생성
if [ ! -d ${BACK_DIR} ]
then
        mkdir ${BACK_DIR}
fi

#BACKUP 디렉터리로 'test'라는 이름의 DB내용 백업 에러로그는 DB_BACK.log 라는 파일로 전송
mysqldump -uroot -pqwe123!@# test > ${BACK_DIR}/${DT}testDB_BACK.sql 2> /tmp/DB_BACK.log

#BACKUP 경로의 sql확장자 가진 파일중 5일이상 지난파일은 삭제
find ${BACK_DIR} -name '*.sql' -mtime +5 -exec rm -f {} \;

 

위와 같이 생성후 crontab에 매일 돌아가도록 설정하면 끝.

-매일 새벽 1시 30분마다 스크립트 실행

30 01 * * * /tmp/db_backup.sh

 

스크립트 실행시 아래와 같이 파일 생성된것 확인가능

[root@localhost BACKUP]# pwd
/tmp/BACKUP
[root@localhost BACKUP]# ll
합계 4
-rw-r--r--. 1 root root 796  5월 11 01:35 20200511testDB_BACK.sql

 

+ Recent posts