PHP, SSH2 и Сценарии Bash, не проживая

Попытайтесь использовать "в качестве разделителя:

date.timezone = "America/Puerto_Rico"

И апач перезагрузки!

1
задан 30 May 2012 в 03:18
2 ответа

Это еще одна моя идея, заключающаяся в том, что цикл может терять аргументы позиции;

directory1=$1
directory2=$2
echo "starting" > /var/www/html/${directory2}.log
rep=`du -sk /home/repository_${directory1} | awk '{print $1}'`
dirsize=`du -sk /home/${directory2} | awk '{print $1}'`
while [ "$dirsize" -lt "$rep" ]; do
        dirsize=`du -sk /home/${directory2} | awk '{print $1}'`
        echo "New directory size: $dirsize."
        echo "$dirsize\\$rep" > /var/www/html/${directory2}.log
        sleep 2;
done
echo "Loop Complete"
echo "done" > /var/www/html/${directory2}.log

  1. попробуйте выполнить сценарий как / bin / bash , а не sh , поскольку в sh отсутствуют некоторые функции (мусор); -)

Вероятно, что пользователь, у которого php / apache запускает скрипт, не имеет разрешения на доступ к нему или несколько файлов в вашем сценарии, или что selinux или какое-то ограничение безопасности не позволяет apache / php запускать интерпретатор sh .

try $ ps -ef | egrep "(php | httpd | apache)" , когда скрипт запущен, чтобы увидеть, можете ли вы определить, от имени какого пользователя работает php.

попробуйте запустить скрипт от имени пользователя apache, например;

 sudo -u apache /bin/bash -x script.sh arg1 arg2

следует предоставьте выходные данные с включенной отладкой, чтобы увидеть, где может быть проблема.

Если скрипт запущен, но застрял, вы можете использовать strace, чтобы посмотреть, что застряло, делая вот так;

# ps -ef | grep sleep
root     24242 22711  0 14:02 pts/0    00:00:00 sleep 10000
root     24249 22711  0 14:03 pts/0    00:00:00 grep sleep

# strace -fp 24242
Process 24242 attached - interrupt to quit
restart_syscall(<... resuming interrupted call ...> <unfinished ...>
3
ответ дан 3 December 2019 в 19:11

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

0
ответ дан 3 December 2019 в 19:11

Теги

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