我知道这个问题已经被提问和回答了很多次,我想我已经阅读了所有这些:-(但仍然没有得到它的工作:-(
好的,在 root 的 cron 中使用 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 用户身份正常运行。然后它会创建应有的输出。
[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 中,登录 shell 和非登录 shell 之间的环境有很大不同。
虽然 root 在 root-login-shell 中使用德语作为语言,但在 root 非登录 shell(从 cron 调用的 shell)中设置为英语。
:-(
netstat 的输出也是如此。
好的,谢谢你的提示。