CentOS 7 構成スクリプトの一部として一行次の操作を行います。残念ながら、私はこれを達成する方法を知りません。
- httpd が実行中の場合は停止します。
- httpdが実行されていない場合は、httpdがインストールされていることを確認して起動します。
- 理想的には、結果は/log/httpd/に記録されます。そして/&ホスト名/ログ/httpd/
誰でも助けることができますか?
答え1
CentOS7には、ほとんどのタスクを実行するsystemctlがあります。 Apacheが標準パッケージを介してインストールされている場合はすぐに動作します。
echo -n $(date +"%s %F %T"): \
if systemctl is-active httpd; then \
systemctl stop httpd && echo "httpd stopped"; \
elif systemctl enable httpd; then \
systemctl start httpd && echo "httpd started"; \
else \
echo "httpd not installed"; false;\
fi 2>&1 || echo "Failure: $?" | \
tee -a /var/log/httpd/status.log /some/other/location/log/httpd/status.log
明確にするために行に分けました。 1行に折りたたむには、\と改行を削除します。ロギングに詳細を追加できます。
答え2
これは私のオンラインメッセージです:
( if service httpd status; then echo 'stop'; service httpd stop; else echo 'check installed'; if ! rpm -qa | grep -q '^httpd-'; then echo 'install'; yum -y install httpd; fi; echo 'start'; service httpd start; fi ) &> /tmp/temp.log; cat /tmp/temp.log >> /log/httpd/some.log; cat /tmp/temp.log >> /&hostname/log/httpd/another.log; rm /tmp/temp.log