Директива DirectoryIndex
не контролирует доступ к содержимому каталога. Доступ/разрешения обычно указываются в элементах Directory
.
Если вы посмотрите на журнал ошибок, например, /var/log/httpd/error.log
(в разных системах по-разному), вы можете увидеть ошибку с таким сообщением:
attempt to invoke directory as script
о которой в документации говорится
Это происходит, когда Apache настроен с помощью
ScriptAlias
илиSetHandler
и делается запрос на путь к каталогу. Проблема заключается в том, что при таких обстоятельствах все ресурсы по определенному пути считаются исполняемыми.Чтобы обойти это и позволить
DirectoryIndex
снова работать, используйтеAddHandler
сOptions
ExecCGI
, илиSetHandler
в строфе.
и приводится пример, который вы можете найти полезным, отключив ScriptAlias
, и восстановив эквивалент с помощью AddHandler cgi-script cgi pl
в опциях Directory
.
Как насчет запуска содержимого цикла в фоновом режиме?
while read IP
do
(if [ 1 -eq "$(echo "$(ssh -n ubuntu@$IP "top -b -n2 -d 0.5|grep Cpu|awk '{print \$2+\$4}'|tail -n1") > 1.0" | bc)" ];then
echo "process is running on $IP"
else
echo "process is not running on $IP"
fi) &
done < file.ips
С помощью GNU Parallel вы можете:
check() {
IP="$1"
if [ 1 -eq "$(echo "$(ssh -n ubuntu@$IP "top -b -n2 -d 0.5|grep Cpu|awk '{print \$2+\$4}'|tail -n1") > 1.0" | bc)" ];then
echo "process is running on $IP"
else
echo "process is not running on $IP"
fi
}
export -f check
parallel -j0 check < file.ips