Recientemente hice esto, esto puede ayudarte:
sshpass -p 'password' username@ipaddress
si esto no funciona, deberá generar claves en la otra máquina con la que desea conectarse
ssh-keygen
generará claves privadas y públicas y le pedirá una ubicación, déjelo en blanco y guardará las claves en la carpeta.ssh de forma predeterminada le pedirá una frase de contraseña, también puede dejarla vacía vaya a la carpeta.ssh y cambie el nombre de la clave pública a 'claves autorizadas _'
cd.ssh/
mv id_rsa.pub authorized_keys
useradd -d /home/username username
esto agregará un usuario a la lista ahora vaya al directorio de inicio y otorgue permiso y reinicie los servicios sshd
chmod 700 /home/username/.ssh
chmod 644 /home/username/.ssh/authorized_keys
chown root:root /home/dozee
sudo service sshd restart
ahora tendrá que mover la clave privada al sistema en esa ubicación desde donde ejecutará el comando ssh, luego podrá conectarse con
sshpass -p 'password' ssh -i id_rsa username@ip
si incluso eso no funciona, vaya a /etc/ssh abra sshd _config con el editor vim verifique si pubkeyAuthenticatoin está activado o no, si no, cámbielo a sí, reinicie los servicios sshd y luego inténtelo, definitivamente funcionará.
Использование cut
для извлечения всех полей после 3:
grep -o 'created files:' $logfile | cut -d" " -f3-
Если ваш grep
поддерживает perl -совместимые регулярные выражения (PCRE):
$ grep -Po 'created files: \K.*' "$logfile"
3 (reg: 2, dir: 1)
Чтобы сохранить числа в массив bash
:
$ numbers=( $(grep -o 'created files:.*' "$logfile" | grep -o '[0-9]\+') )
$ echo ${numbers[@]}
3 2 1
$ echo "${numbers[0]}, ${numbers[1]}, ${numbers[2]}"
3, 2, 1
Перл спешит на помощь:
$ perl -ne 'print "$1 $2 $3\n" if /created files: (\d+) \(reg: (\d+), dir: (\d+)\)/' < "$logfile"
3 2 1
или сsed
:
$ sed -nEe 's/.*created files: ([0-9]+) \(reg: ([0-9]+), dir: ([0-9]+)\)/\1 \2 \3/p' "$logfile"
3 2 1
Оба делают в основном одно и то же :сопоставляют всю конечную часть строки (не только created files
), но захватывают (с(...)
)числами и печатают их или заменяют ими строку.
Чтобы исправить вашу команду:
.*
к паттерну, чтобы включить остальную часть строки в вывод grep
. -f3-
для выбора всех полей с 3-го до конца. -->
grep -o 'created files:.*' "$logfile" | cut -d\ -f3-