메모리를 정리하는 정리 스크립트 cleanup.sh가 있습니다.
스크립트:
# root script starts here
echo ".........running clean up script ..........."
/usr/local/packages/aime/ias/run_as_root "su -"
free -t
sync; echo 1 > sudo /proc/sys/vm/drop_caches
free -t
sync; echo 2 > sudo /proc/sys/vm/drop_caches
free -t
sync; echo 3 > sudo /proc/sys/vm/drop_caches
free -t
swapoff -a && swapon -a
echo "#####swapoff and swap on command ############"
free -g
exit
# root script ends here
free -g
스크립트 끝
스크립트는 루트를 사용하여 이러한 작업을 수행하지만 루트 프롬프트를 종료할 수 없습니다.
0번 출구, 1번 출구, {exit} 모두 시도했습니다.
프로세스가 전면으로 나오고 있습니다. 이 스크립트를 시작하는 쉘로 어떻게 이동합니까?
스크립트를 실행하고 루트로 스크립트를 실행하십시오.
[sgongali@slc06wvd cronjob]$ ./cleanup.sh
.........running clean up script ...........
[root@slc06wvd ~]#
수동으로 종료하면 다음 결과가 나타납니다. swapoff -a && swapon -a는 스크립트의 일부로 작동하지 않지만 수동으로 작동합니다.
[root@slc06wvd ~]# exit
logout
total used free shared buffers cached
Mem: 15037256 12776036 2261220 793448 382132 3357904
-/+ buffers/cache: 9036000 6001256
Swap: 15826924 0 15826924
Total: 30864180 12776036 18088144
total used free shared buffers cached
Mem: 15037256 12776036 2261220 793448 382140 3357896
-/+ buffers/cache: 9036000 6001256
Swap: 15826924 0 15826924
Total: 30864180 12776036 18088144
total used free shared buffers cached
Mem: 15037256 12776036 2261220 793448 382160 3357876
-/+ buffers/cache: 9036000 6001256
Swap: 15826924 0 15826924
Total: 30864180 12776036 18088144
total used free shared buffers cached
Mem: 15037256 12776104 2261152 793448 382164 3357872
-/+ buffers/cache: 9036068 6001188
Swap: 15826924 0 15826924
Total: 30864180 12776104 18088076
./cleanup.sh: line 14: swapoff: command not found
#####swapoff and swap on command ############
total used free shared buffers cached
Mem: 14 12 2 0 0 3
-/+ buffers/cache: 8 5
Swap: 15 0 15
[sgongali@slc06wvd cronjob]$
답변1
which swapoff
및 를 실행 which swapon
하고 스크립트의 전체 경로를 사용합니다. 또는 PATH
스크립트 시작 부분에서 env를 업데이트하고 해당 바이너리가 포함된 디렉터리를 추가하세요.