CentOS系統消息部署指南
在CentOS系統中,“message部署”可根據需求分為即時消息推送、系統日志配置、桌面通知設置及消息隊列(MQ)搭建四大類,以下是具體方法:
echo "這是一條系統廣播消息" | wall
write username "這是給你的私信"
mesg y
;禁止接收:mesg n
curl -X POST -H "Content-Type: application/json" -d '{"msg":"測試消息"}' https://your-webhook-url
libnotify
和d-bus
)。sudo yum install libnotify d-bus
notify-send "標題" "這是一條桌面通知"
sudo yum install pushover-cli
echo "測試消息" | pushover -t YOUR_API_TOKEN
sudo yum install telegram-send
telegram-send -t YOUR_BOT_TOKEN "Hello from CentOS"
sudo vi /etc/rsyslog.conf
*.* /var/log/messages
auth,authpriv.* /var/log/secure
重啟服務生效:sudo systemctl restart rsyslog
sudo yum install dunst
sudo systemctl start dunst && sudo systemctl enable dunst
~/.config/dunst/dunstrc
(如調整通知超時時間timeout = 5000
)以RabbitMQ(常用消息隊列中間件)為例,步驟如下:
sudo yum install -y erlang
/etc/yum.repos.d/rabbitmq.repo
,內容如下:[rabbitmq-server]
name=RabbitMQ repository for CentOS/$basearch
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/$releasever/$basearch
gpgcheck=1
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
enabled=1
或使用官方YUM源:sudo yum install -y https://github.com/rabbitmq/erlang-rpm/releases/download/v23.3.4.11/erlang-23.3.4.11-1.el7.x86_64.rpm
sudo yum install -y https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/x86_64/rabbitmq-server-3.8.24-1.el7.noarch.rpm
sudo yum install -y rabbitmq-server
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
sudo rabbitmq-plugins enable rabbitmq_management
http://<服務器IP>:15672
,默認用戶名/密碼均為guest
(僅限本地訪問)rabbitmqadmin
工具(需先安裝)。my_queue
隊列):echo "Hello, RabbitMQ!" | sudo rabbitmqadmin publish exchange=amq.default routing_key=my_queue
sudo rabbitmqadmin get queue=my_queue
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='my_queue', durable=True)
channel.basic_publish(exchange='', routing_key='my_queue', body='Hello from Python!', properties=pika.BasicProperties(delivery_mode=2)) # 消息持久化
print(" [x] Sent 'Hello from Python!'")
connection.close()
消費者(接收消息):import pika
def callback(ch, method, properties, body):
print(f" [x] Received {body}")
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='my_queue', durable=True)
channel.basic_consume(queue='my_queue', on_message_callback=callback, auto_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
以上方法覆蓋了CentOS系統常見的消息部署需求,可根據實際場景選擇合適的方式(如即時通知用wall
/notify-send
,長期日志用rsyslog
,異步通信用RabbitMQ)。