Я плохо знаком несколько со сценариями в Ubuntu, и у меня есть следующий сценарий, который я выполняю, но возвращаю Разрешение Отклоненные сообщения. Любая справка значительно ценится!
Вот последовательность:
Сценарий:
!/tm/local/bin/bash
blockdev --setra 16384 /dev/sd[bcdefghijkl]
echo 1024 > /sys/block/sdb/queue/read_ahead_kb
echo 1024 > /sys/block/sdc/queue/read_ahead_kb
echo 1024 > /sys/block/sdd/queue/read_ahead_kb
echo 1024 > /sys/block/sde/queue/read_ahead_kb
echo 1024 > /sys/block/sdf/queue/read_ahead_kb
echo 1024 > /sys/block/sdg/queue/read_ahead_kb
echo 1024 > /sys/block/sdh/queue/read_ahead_kb
echo 1024 > /sys/block/sdi/queue/read_ahead_kb
echo 1024 > /sys/block/sdj/queue/read_ahead_kb
echo 1024 > /sys/block/sdk/queue/read_ahead_kb
echo 256 > /sys/block/sdb/queue/nr_requests
echo 256 > /sys/block/sdc/queue/nr_requests
echo 256 > /sys/block/sdd/queue/nr_requests
echo 256 > /sys/block/sde/queue/nr_requests
echo 256 > /sys/block/sdf/queue/nr_requests
echo 256 > /sys/block/sdg/queue/nr_requests
echo 256 > /sys/block/sdh/queue/nr_requests
echo 256 > /sys/block/sdi/queue/nr_requests
echo 256 > /sys/block/sdj/queue/nr_requests
echo 256 > /sys/block/sdk/queue/nr_requests
# Set read-ahead.
echo "Setting read-ahead to 64 MiB for /dev/md0"
blockdev --setra 65536 /dev/md0
# Set stripe-cache_size for RAID6.
echo "Setting stripe_cache_size to 16 MiB for /dev/md0"
echo 16384 > /sys/block/md0/md/stripe_cache_size
echo 8192 > /sys/block/md0/md/stripe_cache_active
# Disable NCQ on all disks.
echo "Disabling NCQ on all disks..."
echo 1 > /sys/block/sdb/device/queue_depth
echo 1 > /sys/block/sdc/device/queue_depth
echo 1 > /sys/block/sdd/device/queue_depth
echo 1 > /sys/block/sde/device/queue_depth
echo 1 > /sys/block/sdf/device/queue_depth
echo 1 > /sys/block/sdg/device/queue_depth
echo 1 > /sys/block/sdh/device/queue_depth
echo 1 > /sys/block/sdi/device/queue_depth
echo 1 > /sys/block/sdj/device/queue_depth
echo 1 > /sys/block/sdk/device/queue_depth
Я предоставил всем доступ выполнения как это:
chmod a+x /home/tm/raid-sync.sh
Я выполняю его как это:
root@LSERVER:~# sh /home/tm/raid-sync.sh
Это возвращает это:
/home/tm/raid-sync.sh: 1: /home/tm/raid-sync.sh: !/tm/local/bin/bash: not found
Setting read-ahead to 64 MiB for /dev/md0
Setting stripe_cache_size to 16 MiB for /dev/md0
/home/tm/raid-sync.sh: 29: /home/tm/raid-sync.sh: cannot create /sys/block/md0/md/stripe_cache_active: Permission denied
Disabling NCQ on all disks...
Во-первых, для выхода первой ошибкой (!/tm/local/bin/bash: not found
), изменение !/tm/local/bin/bash
с #!/bin/bash
. См. здесь [еще 116] о хижине (каково это, как использовать его, примеры).
/home/tm/raid-sync.sh
при подсказке (без sh
впереди).
В-третьих, /sys
каталог в Linux обманчив. В отличие от большинства других каталогов, это не обеспечивает персистентное устройство хранения данных для произвольных файлов, и из-за этого у Вас нет разрешения записать, являетесь ли Вы корнем. См. этот ответ для большего количества информации
Ваша первая строка, кажется, имеет ошибку в нем. (как замечено от Вашей ошибки), я запустил бы путем фиксации его, возможно, изменился бы, это к
#!/bin/bash
тогда попробовало еще раз, и мы можем посмотреть на следующую ошибку