Для выполнения скрипта с помощью ssh, которому нужны определенные переменные, установленные ранее, например, ваше $filename
, сделайте следующее:
ssh user@host 'bash -s' < local_script.sh "$filename"
Содержимое локального_скрипта. sh:
#!/bin/bash
[ $# -ne 1 ] && echo '$0 needs at least 1 parameter' 1>&2 && exit 2
filename="$1"
if [ ! -f "$filename" ]; then
echo "[ $filename ] does not exist"
exit 1
fi
echo "[ $filename ] exists"
Если Вам не нужны никакие передаваемые переменные в Вашей команде для выполнения, это работает:
ssh user@host '
if [ ! -f "test/stuff" ]; then
echo "File does not exist"
exit 1
fi
echo "File exists"
'
Mind the single quotes '
, они не позволяют Вашей команде быть расширенной.
Также я проверил отсутствие $filename
сначала, чтобы уменьшить строки кода и использованные табуляции/белые пространства.
Чтобы сделать вашу команду более читабельной, попробуйте этот
ssh user@host <<'ENDSSH'
if [ ! -f "test/stuff" ]; then
echo "File does not exist"
exit 1
fi
echo "File exists"
ENDSSH
Команда, которая изменила размер файловой системы, была sudo lvextend -r -l +100%FREE /dev/sda<номер>
. Посмотрите на этот другой вопрос для более подробной информации.
Один из способов, который может произойти, это если раздел будет увеличен, но при этом не будет увеличена и базовая файловая система. Возможность обнаружения такой ситуации была добавлена в GParted 0.13.0. Проблему можно исправить, выбрав раздел и выбрав "Раздел --> Проверить"
.