나는 이것을 이해해야 합니다:
df -ah >/opt/pub/software/tmp/Active_directory.txt
find . -type f -exec ls -l {} \; | sort -nr -k 5 >>/opt/pub/software/tmp/Active_directory.txt&id=$!
#!/bin/bash
#recolecta.sh
date;echo 'Command is running, it will cost about 10 minutes, please wait...'
cd /opt/
df -ah >/opt/pub/software/tmp/Active_directory.txt
find . -type f -exec ls -l {} \; | sort -nr -k 5 >>/opt/pub/software/tmp/Active_directory.txt&
id=$!
char=("-" "/" "|" "\\")
n=0
while ps -ef |grep "$id" |grep -v grep > /dev/null
do
echo -ne "\rCommand is running, it will cost about 10 minutes, please wait...${char[$n]} "
n=$(( (n+1)%4 ))
sleep 1
done
ls -lht -R >>/opt/pub/software/tmp/Active_directory.txt
tree >>/opt/pub/software/tmp/Active_directory.txt
REMOTE_HOST=$(getOMUName|grep REMOTE_HOST|awk -F '=' '{print $2}')
ssh $REMOTE_HOST
답변1
귀하의 질문은 좀 더 구체적이어야 합니다. 제가 잘 이해했다면, bash 스크립트의 및 명령에 문제가 있는 것입니다 df
. find
따라서 설명은 다음과 같습니다.
df -ah >/opt/pub/software/tmp/Active_directory.txt
-a
가짜 파일 시스템, 중복 파일 시스템, 액세스할 수 없는 파일 시스템( )을 포함한 파일 시스템 디스크 사용량을 사람이 읽을 수 있는 형식( )으로 보고한 다음-h
출력으로 이름이 지정된 파일을 생성하거나 덮어씁니다.Active_directory.txt
find . -type f -exec ls -l {} \; | sort -nr -k 5 >>/opt/pub/software/tmp/Active_directory.txt & id=$!
- 현재 디렉토리에서 일치하는 항목을 찾고
file type
, 일치하는 각 파일(긴 목록)에 대해 이를 수행하고ls -l
, 출력을 5열의 숫자 순서로 정렬하고 이를 반대로 합니다(즉, 더 큰 파일이 먼저임). 그런 다음 출력을 파일에 추가합니다/opt/pub/software/tmp/Active_directory.txt
. 전체 명령은 백그라운드에서 실행됩니다(&
). 작업의 PID($!
)는 라는 변수에 저장됩니다id
.