新聞中心
如何遠(yuǎn)程使用Linux?
可以使用Telnet、Rlogin、Rsh、Rcp等命令來實現(xiàn)遠(yuǎn)程使用Linux。但是,這些方法在傳輸過程中是沒有加密的,可能帶來許多不安全因素。因此,應(yīng)盡量避免遠(yuǎn)程使用Root賬戶登錄系統(tǒng)。
創(chuàng)新互聯(lián)建站擁有10余年的建站服務(wù)經(jīng)驗,在此期間,我們發(fā)現(xiàn)較多的客戶在挑選建站服務(wù)商前都非常的猶豫。主要問題集中:在無法預(yù)知自己的網(wǎng)站呈現(xiàn)的效果是什么樣的?也無法判斷選擇的服務(wù)商設(shè)計出來的網(wǎng)頁效果自己是否會滿意?創(chuàng)新互聯(lián)建站業(yè)務(wù)涵蓋了互聯(lián)網(wǎng)平臺網(wǎng)站建設(shè)、移動平臺網(wǎng)站制作、網(wǎng)絡(luò)推廣、定制開發(fā)等服務(wù)。創(chuàng)新互聯(lián)建站網(wǎng)站開發(fā)公司本著不拘一格的網(wǎng)站視覺設(shè)計和網(wǎng)站開發(fā)技術(shù)相結(jié)合,為企業(yè)做網(wǎng)站提供成熟的網(wǎng)站設(shè)計方案。
如果一定要使用Root賬戶登錄系統(tǒng),建議使用SSH來實現(xiàn)安全的遠(yuǎn)程登錄,因為SSH實現(xiàn)了數(shù)據(jù)傳輸?shù)募用?。安裝方法如下:
1. 從獲取ssh-1.26.tar.gz文件;
2. 用tar xvpf ssh-1.26.tar.gz解開該軟件包;
3. 到解開的目錄/usr/local/src/ssh-1.26目錄下執(zhí)行./configure;
4. 執(zhí)行Make和Make Install來完成編譯和安裝。
這樣,就可以使用SSH與安裝了SSH的服務(wù)器建立安全的遠(yuǎn)程連接了。更多知識點(diǎn)請查看《linux就該這么學(xué)》第一章內(nèi)容。
linux 遠(yuǎn)程主機(jī)后臺運(yùn)行任務(wù) 掛起腳本
背景 :工作需要,需要遠(yuǎn)程控制主機(jī)使其斷開Xshell后也能一直運(yùn)行。
關(guān)鍵字 : ,nohup,腳本掛起。
在應(yīng)用Unix/Linux時,我們一般想讓某個程序在后臺運(yùn)行,于是我們將常會用 在程序結(jié)尾來讓程序自動運(yùn)行。
鍵入Ctrl + C,發(fā)出SIGINT信號,程序會繼續(xù)運(yùn)行
方法一、輸入命令:jobs
方法二:輸入命令:ps
fg、bg、jobs、、nohup、ctrl+z、ctrl+c 命令
加在一個命令的最后,可以把這個命令放到后臺執(zhí)行,如
可以將一個正在前臺執(zhí)行的命令放到后臺,并且處于暫停狀態(tài)。
查看當(dāng)前有多少在后臺運(yùn)行的命令
jobs -l選項可顯示所有任務(wù)的PID,jobs的狀態(tài)可以是running, stopped, Terminated。但是如果任務(wù)被終止了(kill),shell 從當(dāng)前的shell環(huán)境已知的列表中刪除任務(wù)的進(jìn)程標(biāo)識。
將后臺中的命令調(diào)至前臺繼續(xù)運(yùn)行。如果后臺中有多個命令,可以用fg %jobnumber(是命令編號,不是進(jìn)程號)將選中的命令調(diào)出。
將一個在后臺暫停的命令,變成在后臺繼續(xù)執(zhí)行。如果后臺中有多個命令,可以用bg %jobnumber將選中的命令調(diào)出。
法子1:通過jobs命令查看job號(假設(shè)為num),然后執(zhí)行kill %num
法子2:通過ps命令查看job的進(jìn)程號(PID,假設(shè)為pid),然后執(zhí)行kill pid
前臺進(jìn)程的終止:Ctrl+c
如果讓程序始終在后臺執(zhí)行,即使關(guān)閉當(dāng)前的終端也執(zhí)行(之前的做不到),這時候需要nohup。該命令可以在你退出帳戶/關(guān)閉終端之后繼續(xù)運(yùn)行相應(yīng)的進(jìn)程。
關(guān)閉中斷后,在另一個終端jobs已經(jīng)無法看到后臺跑得程序了,此時利用ps(進(jìn)程查看命令)
如上所示:
nohup 和 組合了后臺運(yùn)行程序。
可以輸出到 out.log保存程序輸出,也可以輸出到/dev/null 即空設(shè)備,不保存輸出。
上面三種方式無論在nohup.out 或test.out都看不到數(shù)據(jù)結(jié)果,這是因為python執(zhí)行有緩存輸出
解決
新的接口接入查看程序
使用后臺運(yùn)行程序:
結(jié)果會輸出到終端
使用Ctrl + C發(fā)送SIGINT信號, 程序免疫
關(guān)閉session發(fā)送SIGHUP信號, 程序關(guān)閉
使用nohup運(yùn)行程序:
結(jié)果默認(rèn)會輸出到nohup.out
使用Ctrl + C發(fā)送SIGINT信號, 程序關(guān)閉
關(guān)閉session發(fā)送SIGHUP信號, 程序免疫
平日線上經(jīng)常使用nohup和配合來啟動程序:
同時免疫SIGINT和SIGHUP信號
同時,還有一個最佳實踐:
不要將信息輸出到終端標(biāo)準(zhǔn)輸出,標(biāo)準(zhǔn)錯誤輸出,而要用日志組件將信息記錄到日志里
nohup和究竟有啥區(qū)別
遠(yuǎn)程執(zhí)行l(wèi)inux命令,source命令怎么寫
source命令用法:source FileName作用:在當(dāng)前bash環(huán)境下讀取并執(zhí)行FileName中的命令。注:該命令通常用命令“.”來替代。如:source .bash_rc 與 . .bash_rc 是等效的。注意:source命令與shell scripts的區(qū)別是,source在當(dāng)前bash環(huán)境下執(zhí)行命令,而scripts是啟動一個子shell來執(zhí)行命令。這樣如果把設(shè)置環(huán)境變量(或alias等等)的命令寫進(jìn)scripts中,就只會影響子shell,無法改變當(dāng)前的BASH,所以通過文件(命令列)設(shè)置環(huán)境變量時,另外你要是想學(xué)習(xí)Linux技術(shù)的話,推薦踏實看完《Linux就該這么學(xué)》這本書,保準(zhǔn)成高手了。
Linux-兩種ssh遠(yuǎn)程執(zhí)行命令方式加載環(huán)境變量區(qū)別
最近在編寫腳本的時候發(fā)現(xiàn)一個問題,在執(zhí)行 kubectl -n kube-system get pods 這個命令的時候,通過 ssh root@ip command 和 ssh root@ip command 登錄后執(zhí)行得到了不同的結(jié)果,
從上面可以看到SSH遠(yuǎn)程執(zhí)行獲取pods失敗了,但是shell窗口執(zhí)行卻成功了,所以我們可以猜到兩者之間一定有什么區(qū)別導(dǎo)致結(jié)果的不同。那么區(qū)別在哪里呢?通過研究發(fā)現(xiàn)兩者的環(huán)境變量存在區(qū)別,通過執(zhí)行printenv可以查看所有設(shè)置的環(huán)境變量:
通過上面可以看到SSH遠(yuǎn)程執(zhí)行的時候是沒有KUBECONFIG這個環(huán)境變量,而Shell窗口是有的,為什么有這個區(qū)別呢?這就要從Linux的bash的四種模式說起。
bash的四種模式:
從上面可以看出不同方式下加載的配置文件不同,那么怎么知道我們是加載了那些配置文件呢? 這里有一個驗證的方法,就是在上面的每個配置文件中添加一句 echo $/etc/profile 這樣的命令,把每個文件的路徑打印出來。當(dāng)配置文件被加載時,會輸出相應(yīng)的文件名,本例中在兩個文件中加了該命令:/etc/pfoile, ~/.bashrc,然后使用不同SSH方式執(zhí)行命令的結(jié)果如下。
只加載了.bashrc文件,未加載/etc/profile。
從輸出可以看到兩個配置都加載了,而KUBECONFIG只定義在/etc/profile中,沒有定義在.bashrc文件中,所以通過 ssh root@ip command 執(zhí)行時沒有拿到KUBECONFIG這個環(huán)境變量從而導(dǎo)致報錯。知道原因后我們就可以將KUBECONFIG環(huán)境變量添加到.bashrc文件即可。
文章名稱:遠(yuǎn)程執(zhí)行命令linux 遠(yuǎn)程執(zhí)行命令
瀏覽路徑:http://www.dlmjj.cn/article/hiehig.html