OS/Linux | 리눅스
[Linux]리눅스 임의 파일 대량 생성 방법(스크립트)
tech-record
2025. 4. 9. 14:13
리눅스 rsync 테스트를 위해 log 파일을 임의로 생성 하는 명령어 입니다.
파일 확장자는 00시에는 8개 파일로 생성하고, 나머지 시간에는 5개 파일 형식으로 저장 됩니다.
(4/1 ~ 5/2 까지 5시간 24초 범위로 임의로 생성)
파일 생성 스크립트
로그파일 생성할 경로에 echo 통해 log 파일 생성(아래 파일이 있어야 스크립트 실행 가능)
echo "test" > 2025-04-01_103000.log
vi generate_logs2.sh 파일 생성
[root@localhost]# cat generate_logs2.sh
#!/bin/bash
start_date="2025-04-01 10:30:00" # 시작 시간
end_date="2025-05-02 00:00:00" # 종료 시간
current_date=$(date -d "$start_date" +%s)
end_date=$(date -d "$end_date" +%s)
interval=18024 # 5시간 24초 (초 단위)
while [ $current_date -le $end_date ]; do
formatted_date=$(date -d "@$current_date" "+%Y-%m-%d_%H%M%S")
echo "test" > "${formatted_date}.log"
echo "test" > "${formatted_date}.log_stats"
echo "test" > "${formatted_date}.logaccount_ptr"
echo "test" > "${formatted_date}.loginitial_ptr"
echo "test" > "${formatted_date}.logptr"
next_date=$((current_date + interval))
next_date_formatted=$(date -d "@$next_date" "+%Y-%m-%d")
current_date_formatted=$(date -d "@$current_date" "+%Y-%m-%d")
# 날짜 변경 감지 및 `000000` 시간 파일 생성
if [ "$current_date_formatted" != "$next_date_formatted" ]; then
midnight=$(date -d "$next_date_formatted 00:00:00" +%s)
midnight_formatted=$(date -d "@$midnight" "+%Y-%m-%d_%H%M%S")
echo "test" > "${midnight_formatted}.log"
echo "test" > "${midnight_formatted}.adtlog"
echo "test" > "${midnight_formatted}.adtlogaccount_ptr"
echo "test" > "${midnight_formatted}.adtloginitial_ptr"
echo "test" > "${midnight_formatted}.adtlogptr"
echo "test" > "${midnight_formatted}.logaccount_ptr"
echo "test" > "${midnight_formatted}.loginitial_ptr"
echo "test" > "${midnight_formatted}.logptr"
fi
current_date=$next_date
done
실행 파일 권한 부여 및 파일 실행
# 실행 파일 권한 부여
chmod +x generate_logs2.sh
# 파일 실행
./generate_logs2.sh
실행 결과 (너무 길어서 일부 발췌)
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-01_103000.log
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-01_103000.log_stats
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-01_103000.logaccount_ptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-01_103000.loginitial_ptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-01_103000.logptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-01_153024.log
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-01_153024.log_stats
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-01_153024.logaccount_ptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-01_153024.loginitial_ptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-01_153024.logptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-01_203048.log
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-01_203048.log_stats
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-01_203048.logaccount_ptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-01_203048.loginitial_ptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-01_203048.logptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-02_000000.adtlog
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-02_000000.adtlogaccount_ptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-02_000000.adtloginitial_ptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-02_000000.adtlogptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-02_000000.log
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-02_000000.logaccount_ptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-02_000000.loginitial_ptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-02_000000.logptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-02_013112.log
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-02_013112.log_stats
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-02_013112.logaccount_ptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-02_013112.loginitial_ptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-02_013112.logptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-02_063136.log
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-02_063136.log_stats
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-02_063136.logaccount_ptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-02_063136.loginitial_ptr
-rw-r--r--. 1 root root 5 4월 2 15:29 2025-04-02_063136.logptr
파일 용량 증가
(파일 용량이 너무 적어 모든 파일을 10M로 임의 수정)
truncate -s 10M /home/2025-04*