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*