/opt/eduserver/eduserver
дает мне варианты:
Использование: / opt / eduserver / eduserver {start | stop | startphp | startwww | startooo | stopphp | stopwww | stopooo | restartphp | restartwww | restartooo | status | restart | reload | force-reload}
где memcache - это модуль php, есть memcache.ini
в /opt/eduserver/etc/php/conf.d
.
Я хочу очистить кэш памяти из командной строки. Могу ли я сделать это как-нибудь, не «касаясь» какой-либо другой части веб-сервера?
да. вы можете очистить кэш памяти. пытаться:
telnet localhost 11211
flush_all
quit
если кэш памяти не работает на локальном хосте 11211, вам придется его настроить.
Это также будет работать с netcat
echo "flush_all" | nc -q 2 localhost 11211
Тогда просто дождитесь «ОК».
memcflush
в инструментах memcache это то, что вы хотите:
memcflush --servers=localhost:11211
+ Изменить localhost
к любому вашему серверу.
Инструменты memcache могут не быть установлены на сервере, если вы используете ОС на базе Debian, вы можете установить их следующим образом:
sudo apt-get install libmemcached-tools
В Bash вы можете использовать этот причудливый синтаксис:
echo flush_all > /dev/tcp/localhost/11211
В противном случае используйте memflush
команда:
memflush --servers=localhost
Вместо ожидания тайм-аутов вы можете сделать команду мгновенной, выполнив flush_all
с quit
команда:
printf "flush_all\r\nquit\r\n" | nc localhost 11211
В качестве альтернативы, если у вас нет nc
:
printf "flush_all\r\nquit\r\n" > /dev/tcp/127.0.0.1/11211
Хотя этот метод не даст результата, но вы можете убедиться, что он работает, проверив stats
чтобы увидеть это cmd_flush
вырос.
(sleep 2; echo flush_all; sleep 2; echo quit; ) | telnet 127.0.0.1 11211
если вы хотите запустить его не интерактивно
спасибо @heiko
если вы используете сокет для подключения к memcached, синтаксис будет
echo "flush_all" | nc -U ~/memcached.sock