Следующий скрипт будет
/etc/fstab
файла и, наконец, /etc/fstab
. Я бы рекомендовал запустить его на копии файла fstab
несколько раз, чтобы убедиться, что он работает в вашей системе. Просто измените переменную fstab
в верхней части скрипта, чтобы она указывала на другой файл.
Только скрипт добавляет суффикс к точке монтирования. Он не пытается удалить его, если он там уже есть.
#!/bin/sh
set -e # terminate on errors (don't remove!)
fstab='/etc/fstab' # these could be made command line arguments
device_pattern='^NAS[0-9]:/vol/wrm6' # but I kept them like this for simplicity
dir_pattern='^/archive/'
suffix='_05042018'
# Check for non-existing mount points
awk -v suf="$suffix" -v dev="$device_pattern" -v dir="$dir_pattern" \
'$1 ~ dev && $2 ~ dir { print NR, $1, $2 suf }' "$fstab" |
while read lineno device mtpoint; do
if [ ! -d "$mtpoint" ]; then
printf 'Mount point "%s" for "%s" is missing on line %d of %s\n' \
"$mtpoint" "$device" "$lineno" "$fstab" >&2
#exit 1
fi
done
# Make backup
bkname="$fstab-backup.$(date +%F_%H%M%S)"
cp "$fstab" "$bkname"
# Modify file
awk -v suf="$suffix" -v dev="$device_pattern" -v dir="$dir_pattern" \
'$1 ~ dev && $2 ~ dir { $2 = $2 suf } 1' "$bkname" >"$fstab"
echo 'Done.'
echo 'New fstab:'
cat "$fstab"
"Не удалять!" комментарий реальный. Если set -e
удалить, то скрипт не завершится, если будет найдена недопустимая точка монтирования (, по крайней мере, при работе под bash
илиpdksh
).
Скорее всего, вы используете Xwindows под своей учетной записью, но пытаетесь открыть сеанс gedit от имени пользователя root с помощью команды sudo. Попробуйте xhost local:
, чтобы разрешить любому пользователю с локального хоста доступ к дисплею, затем повторите команду. Если это сработает, вы можете уточнить его, просто разрешив root доступ к дисплею с помощьюxhost +SI:localuser:root
Попробуйте добавить переключатель -E
после команды sudo
:
sudo -E gedit /etc/ssh/sshd_config