나는 이 질문이 여러 번 요청되고 답변되었다는 것을 알고 있습니다. 나는 그것들을 모두 읽은 것 같습니다 :-( 그러나 여전히 작동하지 않았습니다 :-(
좋습니다. CentOS 버전 8.2.2004(코어)를 사용하는 루트 크론에서 스크립트를 호출합니다.
*/1 * * * * /bin/bash /home/getSSHsessions.sh
스크립트는 일부 프로세스 목록을 포함하는 파일을 생성합니다.
[root@myhost]# cat /home/getSSHsessions.sh
#!/bin/bash
/usr/bin/netstat -tnpa | /usr/bin/grep "VERBUNDEN.*sshd" > /mnt/ramdisk/sshsession.ls
하지만 출력은 빈 파일일 뿐입니다.
[root@myhost]# ll /mnt/ramdisk/
-rw-r--r--. 1 root root 0 5. Okt 19:33 sshsession.ls
나는 이것에 미쳤다. 정말 어디를 봐야할지 모르겠습니다.
아 예, 스크립트는 cmd 라인에서 루트로 잘 실행됩니다. 그런 다음 예상되는 출력을 생성합니다.
[root@myhost]# cat /home/getSSHsessions.sh
#!/bin/bash
/usr/bin/netstat -tnpa | /usr/bin/grep "VERBUNDEN.*sshd" > /mnt/ramdisk/sshsession.ls
[root@saprouter iteanova]# /home/getSSHsessions.sh
[root@myhost]# ll /mnt/ramdisk/
-rw-r--r--. 1 root root 404 6. Okt 10:46 sshsession.ls
[root@myhost]# cat /mnt/ramdisk/sshsession.ls
tcp 0 0 192.168.137.4:54782 192.168.137.2:80 VERBUNDEN 309654/sshd: myuser
tcp 0 0 192.168.137.4:22 95.208.219.123:33300 VERBUNDEN 309622/sshd: myuser
tcp 0 0 192.168.137.4:22 95.208.219.123:60744 VERBUNDEN 308085/sshd: myuser
tcp 0 0 192.168.137.4:22 35.203.68.135:36564 VERBUNDEN 310513/sshd: root [
답변1
좋아, 문제의 원인을 알아요.
누군가 나에게 언어 설정을 알려줬더니 맞습니다.
CentOS에서는 로그인 쉘과 비로그인 쉘의 환경이 많이 다른 것 같습니다.
root는 root-login-shell에서 언어를 독일어로 사용하지만, 루트 비로그인 셸(cron에서 호출되는 셸)에서는 영어로 설정됩니다.
:-(
netstat의 출력도 마찬가지입니다.
알겠습니다. 팁을 주셔서 감사합니다.