우리는 많은 수의 API 로그 파일(수백만 개)을 저장하는 cPanel 서버에서 실행되는 PHP 기반 애플리케이션을 가지고 있으며 API 로그 텍스트 파일을 다른 파티션(서버에 Amazon EFS 설치)에 기록하는 PHP 스크립트를 원합니다. 이러한 텍스트 파일을 더 쉽게 이동할 수 있습니다. df-h의 출력은 다음과 같습니다.
tmpfs 7.3G 0 7.3G 0% /dev/shm
tmpfs 7.3G 115M 7.2G 2% /run
tmpfs 7.3G 0 7.3G 0% /sys/fs/cgroup
/dev/xvda1 1.5T 623G 828G 43% /
/dev/loop0 3.9G 8.3M 3.7G 1% /tmp
127.0.0.1:/ 8.0E 609G 8.0E 1% /smartefs01
tmpfs 1.5G 0 1.5G 0% /run/user/0
tmpfs 1.5G 0 1.5G 0% /run/user/1005
파일을 저장하려는 드라이브는 /smartefs01에 있고 실제 PHP 애플리케이션은 /home/user/public_html에 있습니다. 우리는 PHP 애플리케이션이 /home/user_public_html 대신 /smartefs01에 파일을 저장하도록 하는 가장 간단한 방법을 찾으려고 노력하고 있습니다. 서버 등을 변경할 경우 드라이브를 분리하여 드라이브와 그 안에 있는 모든 파일을 이동할 수 있기를 원하기 때문입니다.
당신이 무슨 생각을하는지 제게 알려주세요!
감사합니다,
유럽 공동체
답변1
이미 존재하지 않는 파일은 심볼릭 링크할 수 없으므로 애플리케이션이 수백만 개의 파일을 생성하는 경우 이는 옵션이 아닙니다.
애플리케이션이 특정 디렉터리에 로그인하는 경우 설치 디렉터리를 심볼릭 링크하거나 바인딩할 수 있습니다. 누구든지 위험하지 않은 PHP 서버 소프트웨어는 서버 어딘가에 로그를 작성해서는 안 된다고 말할 것입니다 public_http
. 이는 부주의하게 정보를 대중에게 노출시킬 위험이 있을 뿐만 아니라 기본적으로 모든 파일 시스템 기반 억제 시도(SELinux)를 만들기 때문입니다. 실패한. 공격자는 로그 파일에 <?php…
태그 등의 콘텐츠가 포함되도록 한 다음 PHP가 로그 파일을 구문 분석할 콘텐츠로 로드하도록 합니다.
그래서 요약하자면,너의 어플리케이션로그를 다른 곳에 기록하려면 구성하거나 수정하려는 로그여야 합니다. 그게 전부입니다. 가장 논리적이고 안전한 것입니다.그리고이 문제를 해결하는 가장 쉬운 방법입니다.