xshell執行腳本
① xshell 登陸後執行vbs腳本
centos系統
1. 查看是否有這個安裝包
[root@02 tmp]# rpm -qa |grep coreutils
coreutils-libs-8.4-19.el6_4.1.x86_64
2. 如沒有請安裝
[root@02 tmp]# yum install coreutils
3. 使用:如腳本 for.sh
[root@02 ~]# nohup sh for.sh
② 如何用xshell編寫腳本
1、在編寫shell腳本的時候一般會先查詢伺服器可以使用哪種腳本,並且查看伺服器使用的默認腳本方式是哪一種。
③ linux 遠程主機後台運行任務 掛起腳本
背景 :工作需要,需要遠程式控制制主機使其斷開Xshell後也能一直運行。
關鍵字 :& ,nohup,腳本掛起。
在應用Unix/Linux時,我們一般想讓某個程序在後台運行,於是我們將常會用 & 在程序結尾來讓程序自動運行。
鍵入Ctrl + C,發出SIGINT信號,程序會繼續運行
方法一、輸入命令:jobs
方法二:輸入命令:ps
fg、bg、jobs、&、nohup、ctrl+z、ctrl+c 命令
加在一個命令的最後,可以把這個命令放到後台執行,如
可以將一個正在前台執行的命令放到後台,並且處於暫停狀態。
查看當前有多少在後台運行的命令
jobs -l選項可顯示所有任務的PID,jobs的狀態可以是running, stopped, Terminated。但是如果任務被終止了(kill),shell 從當前的shell環境已知的列表中刪除任務的進程標識。
將後台中的命令調至前台繼續運行。如果後台中有多個命令,可以用fg %jobnumber(是命令編號,不是進程號)將選中的命令調出。
將一個在後台暫停的命令,變成在後台繼續執行。如果後台中有多個命令,可以用bg %jobnumber將選中的命令調出。
法子1:通過jobs命令查看job號(假設為num),然後執行kill %num
法子2:通過ps命令查看job的進程號(PID,假設為pid),然後執行kill pid
前台進程的終止:Ctrl+c
如果讓程序始終在後台執行,即使關閉當前的終端也執行(之前的&做不到),這時候需要nohup。該命令可以在你退出帳戶/關閉終端之後繼續運行相應的進程。
關閉中斷後,在另一個終端jobs已經無法看到後台跑得程序了,此時利用ps(進程查看命令)
如上所示:
nohup 和 & 組合了後台運行程序。
可以輸出到 out.log保存程序輸出,也可以輸出到/dev/null 即空設備,不保存輸出。
上面三種方式無論在nohup.out 或test.out都看不到數據結果,這是因為python執行有緩存輸出
解決
新的介面接入查看程序
使用&後台運行程序:
結果會輸出到終端
使用Ctrl + C發送SIGINT信號, 程序免疫
關閉session發送SIGHUP信號, 程序關閉
使用nohup運行程序:
結果默認會輸出到nohup.out
使用Ctrl + C發送SIGINT信號, 程序關閉
關閉session發送SIGHUP信號, 程序免疫
平日線上經常使用nohup和&配合來啟動程序:
同時免疫SIGINT和SIGHUP信號
同時,還有一個最佳實踐:
不要將信息輸出到終端標准輸出,標准錯誤輸出,而要用日誌組件將信息記錄到日誌里
nohup和&究竟有啥區別
④ shell腳本第一行為「#!/bin/sh」,是什麼意思
#!/bin/sh為指定你運行腳本的shell類型,是bash,ksh還是其它,一般系統有固定的shell,不定這行也能執行,只是為了規范寫上的。還有比如你執行的是perl程序,就可以寫#!/bin/perl.