Как использовать переменные среды OpenVPN для встроенных скриптов?

e4fsck поддерживает флаг -D, который, похоже, делает то, что вы хотите:

попытайтесь оптимизировать все каталоги, либо переиндексируя их, если файловая система поддерживает индексацию каталогов, либо сортируя и сжимая каталоги для небольших каталогов, либо для файловых систем, использующих традиционные линейные каталоги.

Конечно, для использования fsck вам потребуется размонтировать файловую систему, что означает простой вашего сервера.

Вы захотите использовать опцию -f, чтобы убедиться, что e4fsck обрабатывает файловую систему, даже если она чистая.

Testing:

# truncate -s1G a; mkfs.ext4 -q ./a; mount ./a /mnt/1
# mkdir /mnt/1/x; touch /mnt/1/x/{1..4000}
# ls -ld /mnt/1/x
drwxr-xr-x 2 root root 69632 Nov 22 12:54 /mnt/1/x/
# rm -f /mnt/1/x/*
# ls -ld /mnt/1/x
drwxr-xr-x 2 root root 69632 Nov 22 12:55 /mnt/1/x/
# umount /mnt/1
# e2fsck -f -D ./a
e2fsck 1.43.3 (04-Sep-2016)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 3A: Optimizing directories
Pass 4: Checking reference counts
Pass 5: Checking group summary information

./a: ***** FILE SYSTEM WAS MODIFIED *****
./a: 12/65536 files (0.0% non-contiguous), 12956/262144 blocks
# mount ./a /mnt/1
# ls -ld /mnt/1/x
drwxr-xr-x 2 root root 4096 Nov 22 12:55 /mnt/1/x/

2
29.03.2017, 11:41
1 ответ

Это звучит как OpenVPN непосредственно exec() данной командой, а не передает ее в оболочку. В результате вы не получаете интерполяцию оболочки, что в вашем случае означает, что ваши переменные используются буквально.

Если вы не хотите использовать скрипт, попробуйте явно вызвать оболочку:

up '/bin/sh -c "echo $ifconfig_remote"'
1
27.01.2020, 22:19

Теги

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