반응형
크다면 크다고 할 수 있는 나의 로그파일.. 38G 였습니당.
파일질라로 다운로드 안됨.
그래서 로그파일을 분할 후 압축하여 로컬로 다운 받았습니다.
1. 파일 나누기 (split)
구문
nice -n 19 split -b 4G {경로}/{파일명} {저장할경로}/{저장할파일명 접두사}
예시
nice -n 19 split -b 4G /home/foadm/logs/largefile_20250301.log /home/foadm/logs/largefile_part_
설명:
- nice -n 19 → 가장 낮은 우선순위로 실행하여 다른 중요한 작업에 영향을 덜 줌.
- split → 파일을 여러 개로 나누는 리눅스 명령어
- -b 4G → 4GB 단위로 파일을 분할 (4G = 4기가바이트)
- /경로/largefile.log → 분할할 대상 원본 파일 경로
- /경로/largefile_part_ → 분할된 파일의 이름 접두사
이렇게 실행하면 /home/foadm/logs/ 경로에 다음과 같은 파일들이 생성됨: 지정한 파일명 뒤에 aa, ab ~ 이름이 붙는다.
largefile_part_aa (4GB)
largefile_part_ab (4GB)
largefile_part_ac (4GB)
largefile_part_ad (4GB)
largefile_part_ae (4GB)
largefile_part_af (4GB)
largefile_part_ag (4GB)
largefile_part_ah (4GB)
largefile_part_ai (4GB)
largefile_part_aj (잔여 크기, 2.2GB)
* -d 옵션을 사용하면 숫자로 파일명을 생성할 수 있다. (largefile_part_01, largefile_part_02 형태)
split -b 4G -d /경로/largefile.tar.gz /경로/largefile_part_
>> largefile_part_01 (4GB)
....
2. 분할된 파일 개별 압축
파일을 분할 하였지만 로컬로 다운 받기 위해서 압축을 진행했다.
* 압축 명령어는 CPU를 많이 잡아먹는 편이기 때문에 주의가 필요하다.
부담이 된다면 압축 진행하지 않고 분할한 파일을 그대로 다운받아도 되지 않을까 하는.. 4G 로 분할했으니까요!
구문
for file in /home/foadm/logs/largefile_part_*; do tar -czf "$file.tar.gz" -C /home/foadm/logs "$(basename "$file")"; done
요약:
for 루프 구문으로 /home/foadm/logs 디렉터리에 있는 largefile_part_ 로 시작하는 모든 파일을 하나씩 압축하는 반복 작업을 수행. (* 아스타 사용 -> largefile_part_* )
설명:
- /home/foadm/logs/ 디렉토리 내에서 largefile_part_ 로 시작하는 모든 파일을 찾습니다.
- 각 파일에 대해 tar -czf 명령어로 .tar.gz 형식으로 압축합니다.
- **basename "$file"**로 파일 이름만 추출
- -C /home/foadm/logs 옵션으로 해당 디렉토리에서 압축을 진행합니다.
구문 실행 결과:
'BackEnd > Linux' 카테고리의 다른 글
[Linux] alias 등록 / alias 수정 / alias 별칭 영구등록 (0) | 2024.11.14 |
---|