引自免费微信小程序:皆我百晓生
在Linux环境下,我们可以使用Python的Tkinter库来创建GUI界面,同时结合系统调用(subprocess)来执行CMD命令和调用shell脚本。下面是一个简单的示例代码,实现了上述需求的功能。
首先确保已安装Tkinter库,如果没有,可以通过pip安装:
pip install tk
然后,将以下代码保存为ui_snort.py文件:
import tkinter as tk
from tkinter import messagebox
import subprocess
def start_snort():
subprocess.run(["cd", "/etc/snort"])
subprocess.run(["snort", "-A", "console", "-q", "-u", "snort", "-g", "snort", "-c", "/etc/snort/snort.conf", "-i", "ens33"])
def update_rules():
subprocess.run(["/scripts/demo.sh"])
def count_suspicious():
subprocess.run(["/scripts/count.sh"])
def exit_program():
root.destroy()
exit(0)
root = tk.Tk()
root.title("Snort Management UI")
frame = tk.Frame(root)
frame.pack()
label_welcome = tk.Label(frame, text="欢迎进入!请选择您要执行的操作")
label_welcome.grid(row=0, column=0, padx=10, pady=10)
option_menu = tk.OptionMenu(frame, None, "1. 开启 snort监测", "2. 更新规则库", "3. 可疑行为统计", "4. 退出")
option_menu.config(width=20)
option_menu["menu"].config(font=("Arial", 12))
option_menu.grid(row=1, column=0, padx=10, pady=10)
def on_select(option):
if option == "1. 开启 snort监测":
start_snort()
elif option == "2. 更新规则库":
update_rules()
elif option == "3. 可疑行为统计":
count_suspicious()
elif option == "4. 退出":
exit_program()
option_menu["menu"].bind("<>", on_select)
root.mainloop()
这个脚本会创建一个简单的GUI界面,包含一个欢迎消息和一个下拉菜单。当用户选择不同的选项时,相应的函数会被调用,从而执行相应的CMD命令或调用shell脚本。
为了运行这个脚本,你需要在CentOS上打开终端并导航到脚本所在的目录,然后输入以下命令:
python ui_snort.py
这将会启动GUI界面,用户可以根据提示进行操作。注意,确保你的shell脚本有执行权限,可以使用chmod +x script.sh命令给脚本添加执行权限。
