Redisを自動的にインストールするbashスクリプトを作成したい:
私の問題は、2つのファイルの行を変更することです。
#Install Redis
Sudo apt install redis-server
Sudo nano /etc/redis/redis.conf
行を見つけて変更する必要があります。監視指令はデフォルトでnoに設定されています。
# Note: these supervision methods only signal "process is ready."
# They do not enable continuous liveness pings back to your supervisor.
supervised systemd # this line to change
Sudo systemctl reload redis.service
Sudo nano /etc/redis/redis.conf
コメントを解除する必要があります(#が存在する場合は削除します):
bind 127.0.0.1 ::1
それをテストすることも可能ですか?
redis-cli
次のプロンプトで、pingコマンドを使用して接続をテストします。
ping
Output
PONG
またはステータスを確認しますか?
Sudo systemctl status redis
はい、可能ですが、次善策です。これはバッチプロセスなので、nano
は使用せず、テキスト処理ツールを使用してください。各コマンドの前にSudo
を付ける代わりに、すべてをスクリプトでラップし、Sudo
を使用してスクリプトを実行します。
何かのようなもの(「Something like」とは、「これを試したことがなく、redis-serverをインストールしていません。これを何度も行ったタスクの別の例と考えていますが、動作するはずです」):
#!/bin/bash
if [[ $(id -u) != 0 ]] ; then
echo "Must be run as root" >&2
exit 1
fi
apt update
apt install redis-server
# Just in case, ...
systemctl stop redis-server
# Change "supervised no" so "supervised systemd"? Question is unclear
# If "#bind 127.0.0.1 ::1", change to "bind 127.0.0.1 ::1"
sed -e '/^supervised no/supervised systemd/' \
-e 's/^# *bind 127\.0\.0\.1 ::1/bind 127.0.0.1 ::1' \
/etc/redis/redis.conf >/etc/redis/redis.conf.new
# $(date +%y%b%d-%H%M%S) == "18Aug13-125913"
mv /etc/redis/redis.conf /etc/redis/redis.conf.$(date +%y%b%d-%H%M%S)
mv /etc/redis/redis.conf.new /etc/redis/redis.conf
systemctl start redis-server
# give redis-server a second to wake up
sleep 1
if [[ "$( echo 'ping' | /usr/bin/redis-cli )" == "PONG" ]] ; then
echo "ping worked"
else
echo "ping FAILED"
fi
systemctl status redis
systemctl status redis-server
exit 0