이것이 리눅스다(11) - 필수 개념과 명령어(파일 압축과 묶기, 파일 위치 검색, 시스템 설정, CRON과 AT)
파일 압축과 묶기
윈도우에서는 알집을 통한 파일의 압축과 묶기 기능이 동시에 이루어지지만 리눅스에서는 따로 진행해야 한다.
파일 압축
xz <파일명>
orgzip <파일명>
orbzip2 <파일명>
: 파일 압축.xz -d <파일명.xz>
orgzip -d <파일명.gz>
orbzip2 -d <파일명.bz2>
: 파일 압축 해제.
다양한 압축 방법이 있지만 x2나 bz2가 압출률이 더 좋다.
파일 묶기
tar cvf <묶음 파일 이름> <파일 경로...>
: 파일 묶기.tar xvf <묶음 파일 이름>
: 파일 풀기.- 묶기와 압축을 한꺼번에 수행하는 옵션: J(tar+xz), z(tar+gzip), j(tar+bz2). 예를 들어 bzip2로 압축을 한다면
tar cvfj <묶음 파일 이름.tar.bz2> <파일 경로...>
파일 위치 검색
find <경로> <옵션> <조건> <action>
: 기본 파일 찾기. – 옵션: -name(이름):find /etc -name "*.conf“
, -user(사용자), -newer(전, 후), -size(크기):find /bin -size +10k -size -100k
, -perm(허가권).
※ 명령어 이어쓰기
find /home -name "*.swp" -exec rm { } \;
와 같은 명령어를 통해 find로 찾은 파일에 또 다른 명령어를 줄 수 있다. 이 명령어는 다음과 같은 메커니즘으로 수행된다.
시스템 설정
방화벽 설정
외부에서 들어오는 포트를 열어주는 개념이다. 명령어는 firewall-config
이다.
서비스 설정
서비스란 컴퓨터가 부팅될 때 자동으로 실행되는 프로그램을 일컫는데, 그것들이 자동으로 켜지게 할 지 말 지를 설정하는 명령어이다. 처음에는 설치가 안되어 있으므로 dnf로 설치하자.
cron
주기적으로 반복되는 일을 자동적으로 실행될 수 있도록 설정한다. 관련된 데몬(서비스)은 crond
, 관련 파일은 /etc/crontab
.
<분><시><일><월><요일> root run-parts /etc/cron.<시행 주기>
: 반복하고 싶은 시간마다 시행할 수 있다. ex. 02 4 * * * root run-parts /etc/cron.daily
는 매일 4시 02분에 실행하겠다는 이야기이다.
at
cron은 주기적으로 반복되는 작업을 예약하는 것이지만, at은 일회성 작업을 예약하는 것이다.
- 예약 : # at <시간> ex. # at 3:00am tomorrow → 내일 새벽 3시 # at 11:00pm January 30 → 1월 30일 오후 11시 # at now + 1 hours → 1시간 후시간>
- at> 프롬프트에 예약 명령어 입력 후 [Enter]
- 완료되면 [Ctrl] + [D]
- 확인 : # at -l
- 취소 : # atrm <작업번호>작업번호>
cron과 at 실습
systemctl status crond
를 통해 크론 서비스가 작동하고 있는지 확인한다. active (running)
가 보인다면 제대로 작동하고 있는 것이고, 만약 작동을 하고 있지 않다면 systemctl start
로 작동을 시켜주면 된다.
이제 crontab 파일을 설정해야 한다. vi /etc/crontab
으로 크론탭에 명령을 입력해보자. 주석 아래에 명령을 입력해주면 된다.
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
01 3 15 * * root run-parts /etc/cron.monthly
그러면 이제 반복 실행을 지정한 폴더로 가서 반복할 내용에 대한 스크립트를 만들어줘야 한다. 월과 일을 이름으로 하는 백업 파일을 자동으로 생성해주는 스크립트이다. 아직까지 스크립트에 대해서는 자세히 사용법을 몰라도 된다.
#!/bin/sh
set $(date)
fname="backup-$2$3tar.x2"
tar cfJ /backup/$fname /home
아직 해당 파일은 실행권한이 없으니
chmod 755 myBackup.sh
을 통해 실행권한을 부여하면 주기적으로 실행이 될 수 있다. 확인을 해보고 싶다면 date 011503002027
로 시간을 강제로 조정해서 파일이 만들어지는 지 확인하면 된다. 2027년 1월 15일 3시 0분으로 변경하였다. 만약 다시 표준 시간대로 돌리고 싶다면 rdate -s time.bora.net
를 입력한다.
at 명령어를 실습해보자. 우선 at 4:00am tomorrow
로 실행할 날짜를 설정하고, 실행할 명령어를 쭉 입력해주면 된다. 입력이 다 끝났다면 Ctrl+d
를 입력하면 된다.
[root@localhost ~]# at 4:00am tomorrow
warning: commands will be executed using /bin/sh
at> dnf -y update
at> reboot
at> <EOT>
job 1 at Wed Sep 15 04:00:00 2021
만약 예약한 목록을 보고 싶다면 at -l
로 볼 수 있다. 또한 예약을 삭제하려면 atrm <예약 번호>
로 삭제를 하면 된다.
Leave a comment