/var/log/messages
시스템 종료 쉘 스크립트 본문
반응형
#!/bin/bash
# 자기 이외의 사용자가 로그인하지 않았는지 who 명령어 출력으로 확인
other_user=$(who | wc -l)
if [ "$other_user" -ge 2 ]; then
echo "[ERROR] who 명령어 출력이 2줄 이상: 작업 중인 사용자가 있습니다." >&2
exit 1
fi
# 미리 정지해야 할 프로세스 목록
processes=("/path/to/first/process" "/path/to/second/process" "/path/to/third/process")
# 프로세스 확인
for process in "${processes[@]}"; do
if ps ax -o command | grep -q "^$process"; then
echo "[ERROR] 셧다운 중지: 프로세스 $process 실행 중" >&2
exit 2
fi
done
# 셧다운 실행
sync
shutdown -h now
작업 순서
1. 다른 사용자 확인
현재 로그인한 사용자 수를 who 명령어로 확인합니다.
다른 사용자가 있으면 에러 메시지 출력 후 스크립트 종료.
2. 중요 프로세스 확인
processes 배열에 정의된 프로세스들을 순회하며 실행 여부를 확인합니다.
어느 하나라도 실행 중인 프로세스가 있으면 에러 메시지 출력 후 스크립트 종료.
3, 시스템 셧다운
모든 조건이 충족되면 sync 후 shutdown -h now 명령어로 시스템 종료.
주의사항
프로세스 경로는 실제 시스템 환경에 맞게 조정해야 합니다.
스크립트는 시스템 관리자 권한으로 실행되어야 합니다.
변경 사항을 적용하기 전에는 스크립트 및 시스템 설정의 백업을 권장합니다.
번외로,
고객사 일정이 있어서 업로드가 뜸했습니다.
이젠 차질 없이, 업로드가 될 예정입니다.
'SUSE' 카테고리의 다른 글
파티션 테이블 복제(백업)하기 (0) | 2024.01.30 |
---|---|
XFS 에러 (2) | 2024.01.30 |
ethtool 정리 (2) | 2023.12.07 |
BIOS와 ACPI (0) | 2023.11.29 |
서버의 전원 ON/OFF 시 XFS 슈퍼블록 동작 (4) | 2023.11.29 |