Я думаю, что лучшее решение, если вы используете bash - это бегство от маркера "EOF". Вот так:
cat > mytest << \EOF
$HOME
EOF
cat mytest
$HOME
Вы можете использовать awk
на / var / log / secure
или /var/log/auth.log
(в зависимости от дистрибутива).
На моем CentOS 7
я получаю следующее, когда я вхожу в систему входа в систему:
Dec 8 21:58:20 <server hostname> sshd[8387]: Accepted publickey for gareth from 1.2.3.4 port 58392 ssh2: RSA 55:89:f9:20:db:c6:e0:6f:ff:d4:a7
Вышеуказанное было для интерактивного входа в систему, но аналогичная запись была создана для SFTP
входа в систему.
Следовательно:
awk '/sshd.*Accepted/ {print $1,$2,$3,$9,$11}' /var/log/secure
должен дать вам:
Dec 8 21:58:20 gareth 1.2.3.4