Вам необходимо экранировать $
перед $HOSTNAME
переменной (или командой $(hostname)
), чтобы она разворачивалась/запускалась на удаленной машине, а не на локальной:
#!/bin/bash
while read PASSWORD SERVER;do
sshpass -p "$PASSWORD" ssh -t -p 1234 $SERVER << EOF
wget -N https://example.com/file.conf 2>&1 | grep -i "failed\|error\|saved"
sed -i "s/variabletoreplace/\$HOSTNAME/" file.conf
EOF
done
Как упоминалось в комментариях, было бы намного лучше использовать ключи ssh, а не sshpass
, и если бы все эти команды, которые вы хотите запустить, находились в сценарии на удаленном хосте, это было бы намного проще. В качестве альтернативы может быть более подходящим использование такого инструмента, как ansible
или puppet
.
Для этого не существует источника информации, который гарантированно будет доступен -не программистам.
Однако существуют инструменты, которые вы можете использовать для определения назначения данного модуля ядра (, который представляет собой файл, на который вы смотрите ); первый из них
sudo modinfo max7359_keypad
, который даст вам краткое описание модуля:
MAX7359 Key Switch Controller Driver
Это мало что говорит, но предполагает, что это не драйвер, поддерживающий конкретную модель клавиатуры (или семейство ). Веб-поиск приведет вас на страницу производителя MAX7359 , которая расскажет вам больше, по крайней мере, то, что, вероятно, не имеет отношения к большинству конечных -пользователей.
Если вы загружаете исходный код Linux с помощью системы управления пакетами утилиту или репозиторий Git с исходным кодом клона Linux, вы можете получить некоторые больше информации. Например (я использую ag):
$ cd /usr/src/linux
$ ag max7359_keypad
drivers/input/keyboard/Kconfig
425: module will be called max7359_keypad.
drivers/input/keyboard/max7359_keypad.c
3: * max7359_keypad.c - MAX7359 Key Switch Controller Driver
56:struct max7359_keypad {
87: struct max7359_keypad *keypad = dev_id;
129: struct max7359_keypad *keypad = input_get_drvdata(dev);
138: struct max7359_keypad *keypad = input_get_drvdata(dev);
163: struct max7359_keypad *keypad;
182: keypad = devm_kzalloc(&client->dev, sizeof(struct max7359_keypad),
drivers/input/keyboard/Makefile
41:obj-$(CONFIG_KEYBOARD_MAX7359) += max7359_keypad.o
В drivers/input/keyboard/Kconfig написано:
config KEYBOARD_MAX7359
tristate "Maxim MAX7359 Key Switch Controller"
select INPUT_MATRIXKMAP
depends on I2C
help
If you say yes here you get support for the Maxim MAX7359 Key
Switch Controller chip. This providers microprocessors with
management of up to 64 key switches
To compile this driver as a module, choose M here: the
module will be called max7359_keypad.
И drivers/input/keyboard/max7359 _keypad.c — это драйвер реализация:
// SPDX-License-Identifier: GPL-2.0-only
/*
* max7359_keypad.c - MAX7359 Key Switch Controller Driver
*
* Copyright (C) 2009 Samsung Electronics
* Kim Kyuwon <q1.kim@samsung.com>
*
* Based on pxa27x_keypad.c
*
* Datasheet: http://www.maxim-ic.com/quick_view2.cfm/qv_pk/5456
*/