前言
寶塔是一款服務器管理軟件,非常方便linux新手和運維人員使用。
為了實現自動化管理,我們需要調用寶塔的接口API。
接口API
- 以nodejs為例,其它語言可參考寶塔官方API文檔
const md5 = require('md5');
(async () => {
try {
const BT_KEY = 'your API-KEY'; // 接口秘鑰(在寶塔面板-面板設置-API接口-接口秘鑰中獲取)
let BT_PANEL = 'http://***.***.***.***:36677'; // 面板地址 通常為36677接口 也可使用域名訪問
let nowtime = new Date().getTime().toString();
let type = '/data?action=getData&table=sites'; //獲取網站列表為例
BT_PANEL += type;
let signature = {
request_time: nowtime,
request_token: md5(nowtime + md5(BT_KEY))
};
let query_data = { //獲取網站列表query參數
limit: 15,
};
let body_data = {};
let headers = {
"User-Agent": 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0',
};
// toolkit.post_header 帶headers的POST請求
// toolkit.join_url 將query參數拼接到url上
let html = await toolkit.post_header(toolkit.join_url(BT_PANEL, Object.assign(signature, query_data)), body_data, headers);
console.log(html.body);
} catch (err) {
console.log(err);
}
})();
總結
- 使用API前需要,先在寶塔面板-面板設置-API接口-IP白名單中添加調用的服務器地址。如果為本機調用,還需要添加 127.0.0.1。
- 寶塔官方API
- 本實例以獲取網站列表為例,其它的只需要查看官方API查找並替換URL和提交參數即可。當然直接F12,通過開發者工具查看更加方便。
- API參數絕大多數為query參數、POST請求,官方的post參數大多數應該改為query參數才可以用。