Nextcloud에서 삭제된 파일을 휴지통에서 자동으로 정리하는 방법

Nextcloud에는 삭제된 파일을 자동으로 정리하는 데 필요한 기능이 이미 포함되어 있으므로 대부분의 관리자는 사용자 지정 셸 스크립트가 필요하지 않습니다. 현재 Nextcloud 35 관리 문서에 따르면 권장되는 접근 방식은 정의된 휴지통 보존 정책과 안정적인 백그라운드 작업 실행을 결합하는 것입니다. 중요한 점은 기본 auto정책이 "정확히 30일 후 모든 항목 삭제"와 같지 않다는 것입니다. 삭제된 항목은 최소 30일 동안 보관된 후 공간이 필요할 때 정리 대상으로 지정됩니다.

예측 가능한 정리 작업을 원한다면 명확한 최대 보존 기간을 설정하고 Nextcloud 백그라운드 작업이 시스템 cron을 통해 실행되도록 하세요. 아래 단계는 Nextcloud에서 공식적으로 문서화된 동작만을 사용하며, ` occ trashbin:expireand` trashbin:cleanup명령어가 적절한 경우를 설명합니다.

자동 쓰레기통 청소 기능은 실제로 어떻게 작동할까요?

삭제된 파일 앱( files_trashbin)이 활성화되면 사용자가 삭제한 파일은 즉시 삭제되는 대신 휴지통으로 이동됩니다. 이를 통해 사용자는 파일을 복구할 시간을 확보할 수 있지만, 삭제된 항목도 여전히 저장 공간을 차지합니다. Nextcloud는 설정 trashbin_retention_obligation에서 삭제된 파일의 보존 기간을 제어합니다 config/config.php.

현재 Nextcloud 휴지통 구성 문서에는 다음과 같은 정책 형식이 정의되어 있습니다.

환경의미잘 맞아요
auto물품은 최소 30일 동안 보관하시고, 그 후 공간이 필요할 때 적합한 물품을 제거하세요.기본 동작에 만족하는 소규모 설치 환경.
D, auto물품은 최소 D일 동안 보관한 후, 공간이 허용하는 범위 내에서 정리하십시오.최소한의 복구 기간은 필요하지만, 확정적인 삭제 기한은 필요 없습니다.
auto, DD일 후 삭제를 보장하면서도 공간 부족에 따른 조기 정리를 허용합니다.최대 보존 기간은 높게 설정하고 싶지만, 저장 공간 부족이 발생할 경우 조기 삭제는 허용할 수 있습니다.
D1, D2아이템은 최소 D1일 동안 보관하고 D2일이 지나면 삭제하세요.최소 회수 기간과 확실한 최대 보유 기간이 모두 필요합니다.
disabled휴지통 자동 만료 기능을 비활성화합니다.무기한 보존이 의도적이고 저장 공간 증가를 다른 방식으로 관리하는 경우에만 가능합니다.

저장 공간 관련 규칙이 하나 더 있습니다. 삭제된 파일로 인해 사용자의 할당량이 초과될 경우, Nextcloud는 보존 설정을 무시하고 할당량이 충족될 때까지 불필요한 파일을 정리할 수 있습니다. 따라서 보존 설정을 절대적인 백업 보장으로 생각해서는 안 됩니다.

1단계: 변경 사항을 적용하기 전에 보존 정책을 선택하세요.

사용 환경에서 휴지통의 용도를 명확히 정의하세요. 사용자가 실수로 삭제한 파일을 자주 복원해야 한다면, 의미 있는 최소 복원 기간을 설정하십시오. 저장 공간 제한이나 문서화된 데이터 보존 정책이 우선이라면 최대 복원 기간도 함께 정의해야 합니다.

예를 들어, 이 설정은 언제든지 공간 기반 정리를 허용하지만 30일보다 오래된 파일은 반드시 삭제되도록 보장합니다.

'trashbin_retention_obligation' => 'auto, 30',

삭제된 파일을 최소 30일 동안 보존하고 30일 후에 삭제하려면 경계 정책을 사용하십시오.

'trashbin_retention_obligation' => '30, 30',

복구 요구 사항에 맞는 값을 선택하십시오. 기간이 짧을수록 저장 공간을 더 빨리 확보할 수 있지만 파일 복구 시간이 단축됩니다. 기간이 길면 복구 시간이 늘어나지만 디스크 사용량이 증가할 수 있습니다.

2단계: config.php 파일에서 trashbin_retention_obligation을 설정합니다.

Nextcloud 설정 파일을 엽니다. 이 파일은 일반적으로 config/config.php설치 디렉터리 아래에 있습니다. $CONFIG배열 내의 설정을 추가하거나 변경합니다. 일반적인 예는 다음과 같습니다.

<?php
$CONFIG = array (
  // Other Nextcloud settings...
  'trashbin_retention_obligation' => 'auto, 30',
);

config.php관련 없는 값은 수정하지 마시고, 티켓이나 스크린샷에 서버 구성 정보가 포함될 수 있으므로 내용이 노출되지 않도록 주의하십시오 .

문제 해결 메시지에 파일 내용을 복사하는 대신 Nextcloud의 명령줄 도구를 통해 실제 구성을 확인할 수도 있습니다.

3단계: 안정적인 백그라운드 작업을 위해 시스템 cron을 사용하세요

보존 정책은 Nextcloud 백그라운드 작업이 실제로 실행 중인 경우에만 효과가 있습니다. Nextcloud의 백그라운드 작업 관련 문서에서는 프로덕션 인스턴스에 운영 체제 cron을 사용할 것을 권장합니다. AJAX가 기본 모드이지만 페이지 방문 횟수에 따라 달라지므로 가장 신뢰성이 낮은 옵션입니다.

일반적인 Linux 설치 환경에서 www-data웹 서버 계정을 사용하는 경우, 해당 계정의 crontab을 편집합니다.

crontab -u www-data -e

그런 다음 Nextcloud의 cron.php5분마다 실행하세요.

*/5 * * * * php -f /var/www/nextcloud/cron.php

/var/www/nextcloud<PATH> 부분을 실제 PHP CLI 설치 경로로 바꾸세요 . 일부 시스템에서는 전체 PHP CLI 경로(예: .php)가 필요할 수 있습니다 /usr/bin/php.

다음과 같이 cron 모드를 명시적으로 선택할 수도 있습니다.

sudo -E -u www-data php /var/www/nextcloud/occ background:cron

Nextcloud는 휴지통 만료 백그라운드 작업이 30분마다 실행된다고 명시하고 있습니다. cron.php5분마다 호출된다는 것은 휴지통이 5분마다 비워진다는 의미가 아니라, 스케줄러가 만료 예정인 작업을 실행할 기회를 자주 확보한다는 의미입니다.

4단계: 스케줄러가 제대로 작동하는지 확인합니다.

cron을 설정한 후에는 먼저 운영 체제 항목이 제대로 등록되었는지 확인하십시오.

crontab -u www-data -l

그런 다음 Nextcloud 관리자 설정에서 백그라운드 작업 상태를 확인하세요. 해당 페이지에는 작업이 최근에 실행되었다고 표시되어야 합니다. 마지막 실행 시간이 계속해서 이전 시간으로 표시되는 경우, 보존 정책 문제를 진단하기 전에 cron 설정을 수정하세요.

Nextcloud 35에서는 문서화된 명령어에 `cron.exec` , ` cron.exec`, `cron.exec`와 occ같은 백그라운드 작업 검사 명령어가 포함되어 있습니다 . 이러한 명령어는 cron이 활성화되어 있다고 단순히 가정하는 것이 아니라 작업이 실제로 처리되고 있는지 확인해야 할 때 유용합니다.background-job:listbackground-job:runningbackground-job:history

5단계: 정책 기반 수동 실행에는 trashbin:expire 명령어를 사용합니다.

사용자 지정 보존 기간을 설정한 경우 다음 명령어를 사용하여 해당 정책을 수동으로 적용할 수 있습니다.

sudo -E -u www-data php /var/www/nextcloud/occ trashbin:expire

현재 Nextcloud 파일 및 휴지통 명령 참조에는 중요한 제한 사항이 명시되어 있습니다. trashbin:expire사용자 지정 보존 기간이 구성된 경우에만 수동 만료가 수행됩니다. 기본 auto정책의 경우, 자동 만료는 백그라운드 작업에서 처리되므로 명령은 정보 메시지와 함께 종료되고 아무 작업도 수행하지 않습니다.

만약 의도적으로 별도의 시스템 cron 항목을 만들고 싶다면 trashbin:expire, Nextcloud 문서에 나와 있는 방법을 따라 앱에 내장된 휴지통 만료 백그라운드 작업을 먼저 비활성화해야 합니다.

sudo -E -u www-data php /var/www/nextcloud/occ config:app:set --value=no files_trashbin background_job_expire_trash

그런 다음 직접 일정을 예약할 수 있습니다 occ trashbin:expire --quiet. 이는 고급 옵션입니다. 대부분의 설치 환경에서는 내장된 만료 작업을 활성화하고 Nextcloud의 일반 cron.php스케줄러를 실행하는 것이 더 간단하고 유지 관리가 쉽습니다.

trashbin:expire와 trashbin:cleanup을 혼동하지 마십시오.

이름은 비슷하지만 명령어의 효과는 매우 다릅니다. `<명령어>`는 trashbin:expire구성된 보존 정책에 따라 조건을 만족하는 항목을 제거합니다. ` trashbin:cleanup<명령어>`는 지정한 사용자의 휴지통 내용을 영구적으로 삭제합니다.

예를 들어:

sudo -E -u www-data php /var/www/nextcloud/occ trashbin:cleanup --all-users

모든 사용자의 휴지통을 완전히 비우는 명령입니다. 의도적으로 모든 사용자의 휴지통을 비워야 할 때 유용하지만, 일반적으로 보존 기간을 고려한 자동화 작업에는 적합하지 않습니다. 복구 기간을 무시하기 때문입니다. 영구적이고 무조건적인 삭제가 정말로 정책의 일부인 경우가 아니라면, 모든 사용자의 휴지통을 비우는 명령을 cron에 추가하지 마십시오.

6단계: Nextcloud 35에서 휴지통 크기 확인 및 관리

현재 Nextcloud 35 명령어 설명서에는 trashbin:size관리자가 휴지통의 목표 크기를 전체적으로 또는 사용자별로 확인하거나 설정할 수 있는 명령어가 포함되어 있습니다. 현재 전체 값을 보려면 다음 명령어를 사용하십시오.

sudo -E -u www-data php /var/www/nextcloud/occ trashbin:size

특정 사용자의 유효 목표를 확인하려면 다음 단계를 따르세요.

sudo -E -u www-data php /var/www/nextcloud/occ trashbin:size --user USER_ID

저장 용량이 주요 문제일 경우, 설정된 크기 목표는 기간 기반 보존 정책을 보완할 수 있습니다. Nextcloud는 전역 기본 크기를 변경하면 기존 휴지통이 즉시 정리되므로 크기 변경은 단순한 표시 설정이 아니라 운영상의 조치로 간주해야 한다고 안내합니다.

자동 정리 기능이 제대로 작동하는지 확인하는 방법

  • 백그라운드 작업 상태에는 최근 실행 내역이 표시됩니다.
  • 운영 체제 crontab에 예상되는 cron.php항목이 포함되어 있습니다.
  • 설정하신 내용이 trashbin_retention_obligation의도하신 정책과 일치합니다.
  • 오래된 휴지통 항목은 설정된 최대 보존 기간(설정된 경우)에 따라 결국 사라집니다.
  • trashbin:expire사용자 지정 정책이 구성된 경우 문서에 설명된 대로 작동합니다.
  • 삭제된 오래된 파일이 더 이상 무기한 보존되지 않기 때문에 디스크 또는 할당량 사용량이 예기치 않게 증가를 멈춥니다.

오래된 파일이 예상보다 오래 남아 있는 경우, 먼저 정책에 최대 삭제 값이 제대로 설정되어 있는지 확인하십시오. 기본 auto설정은 정확히 30일 후에 삭제되도록 보장하지 않습니다. 다음으로 백그라운드 작업을 확인하십시오. 이러한 모든 사항을 확인한 후에야 권한, 스토리지 백엔드 또는 애플리케이션 로그를 조사해야 합니다.

대부분의 자체 호스팅 서버에 적합한 실용적인 구성

일반적인 자체 호스팅 인스턴스의 경우, 시스템 cron을 사용하여 5분마다 삭제 작업을 수행하고 최대 휴지통 보존 기간을 명시적으로 설정하는 것이 좋습니다. 예를 들어, 'auto, 30'일반적인 환경에서는 최대 한 달 정도의 보존 기간을 제공하면서도 항목이 무기한으로 남아 있지 않도록 할 수 있습니다. 만약 저장 공간 부족 여부와 관계없이 항상 전체 복구 기간을 확보해야 한다면, 최소 및 최대 보존 기간을 제한하는 정책을 사용하는 것이 좋습니다 '30, 30'.

백업 파일은 휴지통과 분리하여 보관하십시오. 휴지통은 할당량 및 보존 기간이 적용되는 사용자 복구 기능일 뿐이며, 독립적인 백업 전략을 대체할 수 없습니다.

Nextcloud 공식 참조 자료

댓글 남기기

네트워크에서 장치를 찾는 데 유용한 최고의 핑 스윕 도구 10가지

네트워크에서 장치를 찾는 데 유용한 최고의 핑 스윕 도구 10가지

빠른 LAN 검색, 플랫폼 간 스캔 및 IP 주소 관리를 위한 10가지 핑 스윕 도구를 비교해 보세요. 스윕을 통해 무엇을 알 수 있고 무엇을 알 수 없는지 알아보세요.

성능 추적을 위한 최고의 네트워크 관리 도구 6가지

성능 추적을 위한 최고의 네트워크 관리 도구 6가지

SNMP 적용 범위, 매핑, 알림, 배포 모델 및 비용 대비 효과를 포함하여 성능 모니터링을 위한 6가지 네트워크 관리 도구를 비교합니다.

Windows, iOS 및 Android용 최고의 Wi-Fi 분석기

Windows, iOS 및 Android용 최고의 Wi-Fi 분석기

Windows, iPhone, Android용 Wi-Fi 분석 앱들을 비교해 보세요. 채널 혼잡도, 신호 범위, 히트맵, 네트워크 문제 해결 도구 등을 포함합니다.

핑 모니터: 네트워크 가용성을 위한 7가지 무료 오픈소스 도구

핑 모니터: 네트워크 가용성을 위한 7가지 무료 오픈소스 도구

종합적인 네트워크 관리 도구부터 특정 지연 시간 측정에 특화된 도구까지, 7가지 무료 오픈 소스 핑 모니터링 도구를 비교하고 가용성, 패킷 손실률, 기록 관리에 적합한 도구를 선택하세요.

네트워킹에서의 QoS: 서비스 품질(QoS)이란 무엇이며 어떻게 작동하는가

네트워킹에서의 QoS: 서비스 품질(QoS)이란 무엇이며 어떻게 작동하는가

네트워킹에서 QoS가 무엇을 의미하는지, DSCP 마킹과 트래픽 큐가 음성, 비디오 및 비즈니스 애플리케이션의 우선순위를 어떻게 지정하는지, 그리고 QoS로 해결할 수 없는 문제는 무엇인지 알아보세요.

Nmap을 사용하여 트레이서루트를 실행하고 네트워크 경로를 읽는 방법

Nmap을 사용하여 트레이서루트를 실행하고 네트워크 경로를 읽는 방법

Nmap의 --traceroute 옵션을 사용하여 홉을 인증된 호스트로 매핑하고, 홉 및 RTT 출력을 이해하고, 과도한 스캔 없이 누락된 응답 문제를 해결할 수 있습니다.

안전한 파일 전송을 위한 최고의 SFTP 서버 소프트웨어

안전한 파일 전송을 위한 최고의 SFTP 서버 소프트웨어

Windows 및 Linux용 안정적인 SFTP 서버 소프트웨어(OpenSSH, Bitvise, SolarWinds, SFTPGo 등)를 비교해 보세요. 보안 및 파일 전송 요구 사항에 맞는 최적의 솔루션을 찾아보세요.

네트워크 팀을 위한 최고의 IP 주소 관리 도구 7가지

네트워크 팀을 위한 최고의 IP 주소 관리 도구 7가지

서브넷 검색, DNS 및 DHCP 조정, 네트워크 인벤토리, 오픈 소스 IPAM을 위한 7가지 IP 주소 관리 도구를 비교합니다.

네트워크 모니터링 모범 사례: 추적 대상 및 사용 도구

네트워크 모니터링 모범 사례: 추적 대상 및 사용 도구

SolarWinds NPM, PRTG 및 OpManager를 비교하여 명확한 장치 범위, 유용한 성능 지표, 실행 가능한 알림을 통해 실용적인 네트워크 모니터링 시스템을 구축하십시오.

기기 및 IP 주소 검색을 위한 최고의 네트워크 스캐너 도구 10가지

기기 및 IP 주소 검색을 위한 최고의 네트워크 스캐너 도구 10가지

빠른 장치 검색, 플랫폼 간 IP 스캔 및 엔터프라이즈 IPAM을 위한 네트워크 스캐너 도구를 비교하고, 각 옵션을 네트워크에 맞게 선택하는 방법에 대한 지침을 제공합니다.