Ubuntu 및 Linux 설치 후, 개인적으로 자주 사용하는 설정들을 정리한 글입니다.
2015년 부터 정리한 내용도 포함되어 있습니다.
logrotate는 리눅스에서 로그 파일이 생성됨에 따라 파일 수가 무한정 늘어나는 것을 방지할 수 있는 일종의 cron 설정입니다.
이 설정은 아래 폴더에서 설정합니다.
cd /etc/logrotate.d/
아래는 nginx 등 웹서버에 의해 생성되는 접속 및 오류 로그가 날짜 별로 생성될 때 무한정 생성되는 것을 방지하는 설정 파일입니다.
/var/www/*/log/*.log {
daily
dateext
missingok
rotate 30
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi \
endscript
postrotate
invoke-rc.d nginx rotate >/dev/null 2>&1
endscript
}
/var/www/
하위 폴더에 log
폴더 아래에 로그 파일이 생성되는 것을 가정하고, 매일마다 검사하여 30일이 지난 로그 파일은 삭제합니다. 위 코드에서 rotate 30
부분의 숫자를 조정하여 로그를 보관할 기간을 설정할 수 있습니다.
Grub 업데이트 시 아래와 같은 Warning이 발생할 수 있습니다.
grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
해결 방법은 아래 명령어를 통해 grub 매핑해 주면 됩니다.
sudo grub-mkdevicemap -n
sudo grub-install
rsync(Remote Sync)는 빠르게 Incremental 파일 전송을 지원하는 오픈소스 유틸리티입니다.
파일 전송 시 네트워크 대역폭을 최소화하는 delta encoding algorithm을 통해 rcp나 scp와 파일 전송 유틸리티들 보다 빠르게 데이터를 전송/동기화 할 수 있습니다.
따라서, 이런 장점으로 rsync를 이용해 서버 동기화나 백업을 수행합니다.
일반적으로 ssh
를 통해 편리하게 이용 가능합니다.
우선, Source와 Destination 서버 양쪽에 rsync를 패키지를 설치해 줍니다.
처음 설치 시에는 rsync 데몬이 돌지 않기 때문에, conf 파일을 통해 설정해줘야 합니다.
sudo vi /etc/default/rsync
RSYNC_ENABLE=false --> RSYNC_ENABLE=true
저장 후, conf 파일을 생성해 줍니다.
sudo vi /etc/rsyncd.conf
log file=/var/log/rsync.log
[backup]
path=/var/www/
uid=root
gid=root
use chroot=yes
max connections=100
Sshpass 설치 패키지를 설치합니다.
sudo apt-get install sshpass
# /var/www 웹 서버 파일 백업
sudo rsync -avzp --delete --exclude="/var/www/*/log" --rsh="sshpass -p {비밀번호} ssh -l {계정이름}" {Source IP}:/var/www/ /var/www/
# nginx 설정 파일 백업
sudo rsync -avzp --delete --exclude="default" --rsh="sshpass -p {비밀번호} ssh -l {계정이름}" {Source IP}:/etc/nginx/sites-enabled/ /etc/nginx/sites-enabled/
sudo apt-get update
위 명령어로 패키지 목록을 업데이트할 경우 아래와 같은 오류가 발생할 수 있습니다.
sudo apt-get update
# ... 중략
Get:10 http://kr.archive.ubuntu.com/ubuntu focal-security/main amd64 Packages [3,564 kB]
Get:11 http://kr.archive.ubuntu.com/ubuntu focal-security/universe amd64 Packages [1,040 kB]
Err:11 http://kr.archive.ubuntu.com/ubuntu focal-security/universe amd64 Packages
Hash Sum mismatch
Hashes of expected file:
- Filesize:1040380 [weak]
- SHA256:4499130ea8f54eb844e8512536cd716352d72b102a881fe26bc43534d6281c49
- SHA1:de46ab415eec550efe1abe5ce3aeac8f0f27278a [weak]
- MD5Sum:0f827402d155e3c957e3598e3cdd1658 [weak]
Hashes of received file:
- SHA256:dcd2eb33aafd4853dfff2a54665c432225f259a2862d491ef2c05c7cd3b2c1d2
- SHA1:d4427107f8a77d25f458c14e790bd9904e848681 [weak]
- MD5Sum:c6a02dcdc53e608a7fc9ef1e0d7d460a [weak]
- Filesize:1040380 [weak]
Last modification reported: Tue, 03 Jun 2025 16:29:46 +0000
Release file created at: Wed, 04 Jun 2025 07:34:46 +0000
Fetched 1,424 kB in 6s (242 kB/s)
Reading package lists... Done
E: Failed to fetch http://kr.archive.ubuntu.com/ubuntu/dists/focal-security/universe/binary-amd64/by-hash/SHA256/4499130ea8f54eb844e8512536cd716352d72b102a881fe26bc43534d6281c49 Hash Sum mismatch
Hashes of expected file:
- Filesize:1040380 [weak]
- SHA256:4499130ea8f54eb844e8512536cd716352d72b102a881fe26bc43534d6281c49
- SHA1:de46ab415eec550efe1abe5ce3aeac8f0f27278a [weak]
- MD5Sum:0f827402d155e3c957e3598e3cdd1658 [weak]
Hashes of received file:
- SHA256:dcd2eb33aafd4853dfff2a54665c432225f259a2862d491ef2c05c7cd3b2c1d2
- SHA1:d4427107f8a77d25f458c14e790bd9904e848681 [weak]
- MD5Sum:c6a02dcdc53e608a7fc9ef1e0d7d460a [weak]
- Filesize:1040380 [weak]
Last modification reported: Tue, 03 Jun 2025 16:29:46 +0000
Release file created at: Wed, 04 Jun 2025 07:34:46 +0000
W: Some index files failed to download. They have been ignored, or old ones used instead.
위 오류는 패키지 서버에서 파일을 업데이트하는 과정에서 해시값이 일치하지 않아서 발생하는 오류입니다.
해결 방법은 아래와 같이 캐시를 삭제하고 다시 업데이트 하는 것입니다.
sudo rm -rf /var/lib/apt/lists/*
sudo apt-get update -o Acquire::CompressionTypes::Order::=gz
sudo apt-get update
위 명령어를 통해 패키지 목록을 새로 업데이트 하면 오류가 해결됩니다.
계속 업데이트 예정.