Создайте сценарий оболочки для входа на сервер и использования дискового пространства электронной почты

Если это только сообщение для входа (motd), в котором говорится, что пакеты нуждаются в обновлении, возможно, просто update-motd не запускается через некоторое время. Попробуйте запустить update-motd, а затем снова войдите в систему, чтобы узнать, исправляет ли он это. Он должен восстановить файл / etc / motd.

1
задан 16 November 2015 в 08:21

1 ответ

Сначала создайте открытый ключ для использования для входа в удаленную систему без пароля:

ssh-keygen -t rsa -b 4096 -C "your_username"

Это приведет к созданию 4096-битного ключа RSA в вашем каталоге ~/.ssh/ с вашим имя пользователя в качестве метки. Затем добавьте этот новый ключ к вашему ssh-агенту, чтобы он использовался, когда вы подключаетесь через SSH.

ssh-agent -s
ssh-add ~/.ssh/id_rsa

Если вы установите пользовательское имя во время генерации ключа, замените id_rsa на это имя.

Теперь скопируйте содержимое своего открытого ключа в буфер обмена.

clip < ~/.ssh/id_rsa.pub

Затем войдите на удаленный сервер с помощью ssh -p YOURPORT user@remote.host и отредактируйте файл authorized_keys удаленного пользователя .

vim .ssh/autorized_keys

Вставить содержимое, которое вы только что скопировали в буфер обмена. Это позволяет подключать ваш компьютер к удаленному хосту без пароля, вместо этого использовать сертификаты (как правило, гораздо более безопасные).

Теперь вам нужно создать скрипт example-script.sh в доме вашего удаленного хоста (убедитесь, что chmod a+x example-script.sh после этого установите его как исполняемый файл).

#!/usr/bin/env bash
CURRENT=$(df / | awk '/\// { print $5}' | sed 's/%//g')
mail -s 'Disk Space Alert' username@example.com << EOF
Disk usage is at:  $CURRENT%
EOF

И теперь создайте сценарий в своем локальном домашнем каталоге, local-script.sh, чтобы запустить команду позже (опять же, обязательно сделайте его выполнимым после).

#!/usr/bin/env bash
ssh -P YOURPORT user@remote.host ./example-script.sh

Этот скрипт позволяет вам запустить ./local-script.sh из вашего домашнего каталога, чтобы запустить удаленный скрипт только в одной строке. Затем вы можете добавить это как псевдоним в свой файл .bashrc, чтобы вы могли просто запустить local-script или любой другой псевдоним, который вы можете захотеть. Вы также можете использовать абсолютный путь (/home/your_username/local-script.sh) в crontab, чтобы он выполнялся в определенное время каждый день.

3
ответ дан 23 May 2018 в 15:46

Другие вопросы по тегам:

Похожие вопросы: