/home/testuser/log
하루 전의 로그 파일이 포함된 폴더가 있습니다 *.log
. 하루가 지난 모든 로그 파일을 단일 zip(gzip 또는 tar.gz)으로 압축하고 오래된 파일을 삭제하고 싶습니다.
파이프 찾기 및 tar 명령을 시도했지만 성공하지 못했습니다.
답변1
하루가 지난 로그의 tar.gz 파일 만들기
find /home/testuser/log/ -mtime +1 | xargs tar -czvPf /opt/older_log_$(date +%F).tar.gz
오래된 파일 삭제 [참고:- 아래 찾기 결과가 정확하면 echo를 삭제한 후 이 파일을 삭제합니다.]
find /home/testuser/ -mtime +1 | xargs -n1 echo rm
답변2
sr_의 의견을 확장하면 logrotate를 사용하여 야간 SQL 덤프를 관리하고 있습니다. 나는 다음과 같은 구성을 가지고 있습니다 /etc/logrotate.d/mydbdump
:
/var/backups/dump.sql {
daily
rotate 7
missingok
create 640 root root
compress
}
기본적으로 파일을 가져와서 /var/backups/dump.sql
(로그 파일 이름을 지정할 수 있음) 압축한 후 이름 을 dump.sql.1.gz
.dump.sql.1.gz
dump.sql.2.gz
logrotate
일반적으로 자체적으로 호출되므로 실행 시기를 제어하려면 디렉터리를 cron
확인하세요 ./etc/cron*