日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

tmux命令启动MySQL_tmux启动脚本

發(fā)布時(shí)間:2024/10/5 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tmux命令启动MySQL_tmux启动脚本 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

每次機(jī)器關(guān)閉后,再次打開tmux需要重復(fù)執(zhí)行新建窗口,panel等操作,能否用腳本自動(dòng)化?可以!

tmux的命令,既可以在tmux內(nèi)執(zhí)行(perfix :),也可以在命令行中作為tmux的參數(shù)執(zhí)行,通過制定session,就可以在外部控制這個(gè)session的各種行為。后者就給了shell腳本控制tmux的機(jī)會(huì)!

首先我們先來了解一些腳本中需要用到的tmux命令:

新建對(duì)話

new-session [-AdDEP] [-c start-directory] [-F format] [-n window-name] [-s session-name] [-t target-session] [-x width] [-y height] [shell-command]

新建一個(gè)tmux會(huì)話。

[-s session-name]指定會(huì)話的名字。

-d讓當(dāng)前的終端打開這個(gè)tmux對(duì)話。在腳本中我們一般會(huì)帶上這個(gè)參數(shù),因?yàn)槿绻苯幼尞?dāng)前終端打開這個(gè)tmux對(duì)話,腳本就不會(huì)繼續(xù)執(zhí)行了,也就無法定制這個(gè)tmux對(duì)話了。

[-n window-name]指定新建的會(huì)話的第一個(gè)窗口的名字。新建一個(gè)會(huì)話默認(rèn)會(huì)新建一個(gè)窗口。

[shell-command]指定在新建的窗口中執(zhí)行的shell命令

判斷一個(gè)對(duì)話是否存在

has-session [-t target-session]

判斷指定的tmux對(duì)話是否存在,如果存在返回碼為0,不存在返回碼為1

新建窗口

new-window [-adkP] [-c start-directory] [-F format] [-n window-name] [-t target-window] [shell-command]

新建一個(gè)window

[-t target-window]指定在哪個(gè)session新建window

[-n window-name]指定新window的名字

[shell-command]指定在新建的窗口中執(zhí)行的shell命令

選擇一個(gè)窗口

select-window [-lnpT] [-t target-window]

[-t target-window]切換到指定的window

新建一個(gè)panel

split-window [-bdhvP] [-c start-directory] [-l size | -p percentage] [-t target-pane] [shell-command] [-F format]

-h,-v 水平、垂直分割。這里我感覺tmux的分割和說的是相反的。。。因?yàn)?h會(huì)在中間畫一條豎線。。。

[-t target-pane]指定需要?jiǎng)澐值拿姘?/p>

發(fā)送按鍵到對(duì)應(yīng)的panel

send-keys [-lMR] [-t target-pane] key ...

key可以指定快捷鍵,比如C-a,C-m等。

附加到一個(gè)session上

attach-session [-dEr] [-c working-directory] [-t target-session]

[-t target-session]打開對(duì)應(yīng)的tmux對(duì)話

target-window和target-panel的命名規(guī)則

mysession:1指mysession對(duì)話的第一個(gè)窗口

mysession:name指mysession對(duì)話的叫name的窗口

mysession:1.0指mysession對(duì)話的第一個(gè)窗口的第0個(gè)面板。

tmux還支持很多靈活的命名方法來定位對(duì)應(yīng)的窗口或者面板,具體的可以參考tmux的man文檔。

注意:窗口和面板默認(rèn)從0開始編碼,但是可以通過設(shè)置來修改。我吧窗口設(shè)置為從1開始編碼,這樣切換窗口的時(shí)候比較方便。

關(guān)于執(zhí)行shell命令

這里的shell-command雖然是在tmux中執(zhí)行命令,但是和手動(dòng)在tmux中執(zhí)行是不一樣的。

比如new-window 'vi /etc/passwd',tmux會(huì)這樣執(zhí)行:/bin/sh -c 'vi /etc/passwd'

比如$ tmux new-window vi /etc/passwd,tmux會(huì)這樣執(zhí)行:vi /etc/passwd

這兩種情況,當(dāng)你退出這個(gè)vim的時(shí)候,這個(gè)窗口也會(huì)結(jié)束!因?yàn)檫@個(gè)窗口運(yùn)行的進(jìn)程退出了,窗口也會(huì)退出。

那如果我只想在窗口的bash中執(zhí)行命令作為子進(jìn)程呢?

可以使用send-keys命令。

例子

了解了一些tmux命令后,就可以弄一個(gè)啟動(dòng)tmux的demo腳本了。

我的配置可以參考:tmux使用與配置

要求:啟動(dòng)tmux,第一個(gè)窗口打開家目錄,窗口的名字為home。第二個(gè)窗口打開vi,名字為edit。默認(rèn)顯示第一個(gè)窗口。第三個(gè)窗口水平分割。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24#!/bin/bash

#

# tumx啟動(dòng)腳本

# mushan 2016-05-20

# 兼容zsh

export DISABLE_AUTO_TITLE="true"

session="test"

tmux has-session -t $session

if [ $? = 0 ];then

tmux attach-session -t $session

exit

fi

tmux new-session -d -s $session -n home

tmux send-keys -t $session:1.0 'cd ~' C-m

tmux new-window -t $session:2 -n edit vi

tmux new-window -t $session:3

tmux split-window -t $session:3 -v

tmux select-window -t $session:1

tmux attach-session -t $session

為什么第一行有一個(gè)export DISABLE_AUTO_TITLE="true"呢?

這是因?yàn)槲沂褂昧藌sh,new-window -n windown_name老是不能生效,新窗口的名字還是當(dāng)前目錄名。這是因?yàn)閦sh會(huì)設(shè)置當(dāng)前shell標(biāo)題為當(dāng)前目錄名,bash就沒有這個(gè)問題。

zsh的這個(gè)功能可以通過設(shè)置export DISABLE_AUTO_TITLE="true"來關(guān)閉。

還有,因?yàn)槲沂褂昧藄et -g base-index 1這個(gè)配置,所以窗口是從1開始編碼的,這一點(diǎn)大家需要注意一下。

參考資料

總結(jié)

以上是生活随笔為你收集整理的tmux命令启动MySQL_tmux启动脚本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。