본문 바로가기

🎧️ 강의듣기

[리눅스] systemctl, crontab, 파일시스템

프로그램의 설치

 

프로세스 상태

    ps

    pstree

    tree

    kill

    top

 

*daemon

    * 백그라운드 프로세스로 사용자 처리 요청을 대기하는 프로세스

    * ~~d

 

    * systemctl 옵션 데몬명

        * start - 시작

        * status

        *enable - 재부팅 후에도 자동시작

 

root로 접속하는 경우가 많아서 root를 생략하기도 함
su - 

존재하는 서비스 목록 조회
systemctl

활성화 되어있는 서비스의 목록 조회
systemctl list-unit-files

부팅시 자동으로 시작시켜주는 활성화되어있는 목록
( 인터넷에는 모든 서비스의 상태표시라 나옴)
systemctl list-units --type service

enable된것만 보여줌 (grep으로 검색가능)
systemctl list-unit-files --type service | grep enabled

실행되어있는걸 중지시킴
systemctl stop atd

atd 시작시킴
systemctl start atd

 

프로그램의 실행 예약

    at - 일회성

          파일(데이터베이스)로 저장(메일 - 보고서)

 

정해진 시간에 반복 실행

    crontab

        crond(클론데몬)이 실행되고 있어야 함

 

등록되어있는 crontab 목록
crontab -l

crontab 생성 에디터
crontab -e
12,15 * * * * /usr/bin/ls -l ~master > ~master/list.txt
(매시간 12분, 15분마다 명령실행)

crontab 확인은 root에서 가능함 (사용자 계정에서는 허가 거부뜸)
[root@localhost ~] ls -l /var/spool/cron/master 
-rw-------. 1 master master 56  7월  5 10:08 /var/spool/cron/master
[root@localhost ~] cat /var/spool/cron/master 
12,15 * * * * /usr/bin/ls -l ~master > ~master/list.txt

root에서 crontab지우는법
crontab -u master -r

master계정에서 crontab -l 명령어를 입력하면
crontab있던게 지워졌음을 확인

 

 

파일시스템

파일시스템
cat /etc/fstab

mount : 저장 장치

cd를 넣을때 mount
cd를 뺄때 umount / eject

요즘은 자동으로해줌

기가 단위로 보여줌
df -BG

메가바이트 단위로 보여줌
df -BM

디렉토리별로 용량 보여줌
du 경로
du /home/master/

좀 더 짧게 표현
du -s /home/master/

모든 사용자 표현
du -s /home/*

읽기좋게 표현
du -sh /home/*

 

파티션

    format

        파일을 저장하는 방식

        윈도우 - fat ( 16, 32, exfat ), ntfs

        리눅스 - ext2, ext3, ext4, xfs

        맥

 

파티션나누는법

    컴퓨터 끄기 → CentOS 8 64-bit1 선택 → Edit virtual machine settings

→ Add → Hard Disk 선택 후 Next → SCSI 선택 후 Next

→ Create a new virtual disk 선택 후 Next → disk size: 20GB Next

→ disk file 기본으로 적혀있는거 그대로 Finish

→ 추가된거 확인하고 OK

→ Edit virtual machine settings에서 추가된거 다시 확인하고 

Play virtual machine해서 실행

 

터미널에서 su - 로 root 계정 로그인 후

fdisk -l으로 추가되었는지 확인

 

fdisk /dev/sdb
p
l
n
p
1
엔터 두번
w
mkfs /dev/sdb
y
mkdir /mnt/sdb
mount /dev/sdb /mnt/sdb/
cd /mnt/sdb/
ls
touch text.txt

[root@localhost sdb] cd ..
[root@localhost mnt] umount /mnt/sdb
[root@localhost mnt] cd sdb
[root@localhost sdb] ls
[root@localhost sdb] mount /mnt/sdb
[root@localhost sdb] cd ..
[root@localhost mnt] mount /dev/sdb /mnt/sdb/
[root@localhost mnt] ls sdb/
lost+found  text.txt
[root@localhost mnt] fdisk /dev/sdc

 

 

Command (m for help): p 

Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x96463cab

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039): +10G  

Created a new partition 1 of type 'Linux' and of size 10 GiB.

Command (m for help): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x96463cab

Device     Boot Start      End  Sectors Size Id Type
/dev/sdb1        2048 20973567 20971520  10G 83 Linux

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (20973568-41943039, default 20973568): 
Last sector, +sectors or +size{K,M,G,T,P} (20973568-41943039, default 41943039):  

Created a new partition 2 of type 'Linux' and of size 10 GiB.

Command (m for help): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x96463cab

Device     Boot    Start      End  Sectors Size Id Type
/dev/sdb1           2048 20973567 20971520  10G 83 Linux
/dev/sdb2       20973568 41943039 20969472  10G 83 Linux

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

[root@localhost mnt] fdisk -l
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x96463cab

Device     Boot    Start      End  Sectors Size Id Type
/dev/sdb1           2048 20973567 20971520  10G 83 Linux
/dev/sdb2       20973568 41943039 20969472  10G 83 Linux

 

selinux - Secure Linux

          - 파일시스템 변화를 감지

 

root로 로그인
vi /etc/selinux/config

아래의 파일을
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing

# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted


아래의 데이터로 변경
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
# SELINUX=enforcing
SELINUX=permissive
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

 

firewall - 방화벽

          - 개방 포트

          - 접속 아이피

 

SSHD ( Secure shell deamon )

        - 원격 터미널 접속용 서버

        - 22번

 

sshd가 실행되고 있는지 확인
systemctl status sshd

포트가 개방되었는지 확인
netstat -an | grep -w LISTEN

tcp6       0      0 ::1:631                 :::*                    LISTEN     
tcp6       0      0 :::111                  :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     

ssh 접속
ssh localhost

exit로 접속종료

 

    - linux : ssh

    - window : SecureCRT → putty

        https://www.putty.org/

here 클릭
os에 맞게 설치 64-bit x86 다운로드 받음

 

# sshd 환경설정파일
vi /etc/ssh/sshd_config

# 포트 2015로 설정
Port 2015

# sshd 재시작

# 중지
systemctl stop sshd

# 시작
systemctl start sshd

# putty로 접속안됨

# 방화벽 설정
vi /usr/lib/firewalld/services/ssh.xml

<port protocol="tcp" port="2015"/>
# 위에 코드를 추가 후 저장하고 나오기

# 그리고 리로드 해줘야함
firewall-cmd --reload

# 아까 sshd를 중지했기때문에 다시 시작해주고
systemctl start sshd

# putty에서 2015포트로 접속하면 연결성공!

# putty에서 root 직접 접근X
vi /etc/ssh/sshd_config

# PermitRootLogin yes를 no로 바꾸고 저장 후
sshd 재시작

# root에 접근하려면 사용자 계정으로 로그인 후 su - 명령어 이용

 

접속시도 6번

#MaxAuthTries 6

 

동시접속

#MaxSessions 10

 

# tomcat외부에서 접속할수 있게 만들기

cd /usr/lib/firewalld/services/
 cp http.xml tomcat.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>TOMCAT (HTTP)</short>
  <description></description>
  <port protocol="tcp" port="8080"/>
</service>

# 저장하고 나와서
firewall-cmd --zone=public --add-service=tomcat --permanent
firewall-cmd --reload

# 윈도우에서 주소랑 포트번호 입력하면 톰캣화면나옴

 

톰캣용 가상디렉토리

[master@localhost webapps] mkdir website1
[master@localhost webapps] mkdir -p website1/WEB-INF
[master@localhost webapps]
[master@localhost webapps] vi website1/index.jsp

# webapps/website1/index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	Hello JSP
</body>
</html>

# 다른 디렉토리를 톰캣에 등록하기
[master@localhost ~] mkdir website2
[master@localhost ~] mkdir -p website2/WEB-INF
[master@localhost ~] vi website2/index.jsp
[master@localhost ~] vi website2/index.jsp
[master@localhost ~] cd apache-tomcat-9.0.48/conf/Catalina/localhost/
[master@localhost localhost] ls
[master@localhost localhost] vi website2.xml

# website2.xml
<?xml version="1.0" encoding="utf-8"?>
<Context path="/website2" docBase="/home/master/website2" reloadable="true">
</Context>

# 저장하고 톰캣을 재시작하면 적용 끝