亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 58579 | 回復(fù): 0
打印 上一主題 下一主題

TASKCTL中不使用代理,通過ssh免密連接執(zhí)行遠(yuǎn)程腳本配置(SSH插件擴(kuò)展) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2017-10-26 09:54 |只看該作者 |倒序?yàn)g覽
本帖最后由 童話鎮(zhèn) 于 2017-10-26 10:02 編輯

使用TASKCTL調(diào)度服務(wù)時,如果需要跨用戶或者跨服務(wù)器調(diào)度可以通過安裝taskctl的代理來實(shí)現(xiàn),但有時需要執(zhí)行作業(yè)的服務(wù)器上僅僅只有幾個腳本,此時再部署代理,就顯得有點(diǎn)得不償失了。我們知道TASKCTL支持任意作業(yè)類型的擴(kuò)展,所以我們是不是可以考慮通過SSH遠(yuǎn)程連接來執(zhí)行這些少量的腳本程序。
    下面是通過擴(kuò)展TASKCTL用ssh連接來支持調(diào)度遠(yuǎn)程作業(yè)的步驟,一方面解決一些朋友迫切的調(diào)度需求,另一方面拋磚引玉,讓大家能夠在TASKCTL中擴(kuò)展更多的適應(yīng)自己需求的作業(yè)插件。
    下面編寫的過程參照 http://www.taskctl.com/forum/detail_33.html 。
    1、首先在服務(wù)端的$TASKCTLDIR/src/plugin/ssh/shell/目錄中新增cprunssh.sh作業(yè)插件,實(shí)際上就是一個shell程序,代碼如下:
  1. #!/bin/sh
  2. #------------------------------------------------------------------------------
  3. # 功能: ssh方式執(zhí)行 遠(yuǎn)程腳本 驅(qū)動插件程序
  4. # 參數(shù):
  5. # 1. progname 和sh作業(yè)類似,對應(yīng)相應(yīng)任務(wù)的progname屬性,一般為腳本的全路徑名稱
  6. # 2. para 和sh作業(yè)類似,對應(yīng)相應(yīng)任務(wù)的para屬性,一般為腳本的入口參數(shù),格式為 para1 para2 ...
  7. # 3. exppara 對應(yīng)相應(yīng)任務(wù)的exppara屬性,一般為腳本文件所在位置,在這里是遠(yuǎn)程連接IP地址和用戶名
  8. # sip=172.22.1.1 ssh遠(yuǎn)程IP地址
  9. # sport=9527 ssh遠(yuǎn)程連接端口
  10. # suser=taskctl ssh遠(yuǎn)程用戶
  11. # 返回值: 0 成功;1 失敗
  12. #
  13. # 流程模式代碼任務(wù)定義舉例:
  14. # 默認(rèn)2個輸入?yún)?shù)的遠(yuǎn)程服務(wù)器上的sh腳本(如果多個,以此類推)
  15. # <ssh>
  16. # <name>job1</name>
  17. # <progname>/home/username/test.sh</progname>
  18. # <para>para1 para2</para>
  19. # <exppara>sip=172.22.1.1,[sport=22,]suser=taskctl</exppara>
  20. # </ssh>
  21. #
  22. #------------------------------------------------------------------------------

  23. if [ $# -ne 3 ]
  24. then
  25. echo "Param error !"
  26. echo "Usage: $0 progname para expara"
  27. exit 126
  28. fi

  29. #------------------------------------------------------------------------------
  30. # 第一步: 接收參數(shù)
  31. #------------------------------------------------------------------------------
  32. ProgName=$1
  33. Para=$2
  34. ExpPara=$3

  35. #------------------------------------------------------------------------------
  36. # 第二步: 解析 exppara
  37. #------------------------------------------------------------------------------
  38. function getValue(){
  39. if [ $# -ne 2 ]
  40. then
  41. echo "......."
  42. exit 1
  43. fi

  44. str=`echo $2|awk -v record=$1 'BEGIN {
  45. split(record,myarray,",");

  46. }
  47. END{
  48. for (i in myarray){
  49. if (myarray[i]~$1){
  50. if ( index(myarray[i],$1) == 1){
  51. print myarray[i];
  52. break;
  53. }
  54. }
  55. }
  56. }
  57. '`
  58. echo $str|awk -F"=" '{print $2}'
  59. }

  60. ExpPara=`echo $ExpPara` #此處為了去前后空格,以便判斷是否真正有入口參數(shù)
  61. sip=`getValue $ExpPara sip`
  62. #sport=`getValue $ExpPara sport` #默認(rèn)沒有修改端口 傳參數(shù)的時候也沒有傳 先屏蔽
  63. sport=22
  64. suser=`getValue $ExpPara suser`

  65. #------------------------------------------------------------------------------
  66. # 第三步: 檢測是否配置了ssh免密連接
  67. #------------------------------------------------------------------------------
  68. ssh -o NumberOfPasswordPrompts=0 -o StrictHostKeyChecking=no -p $sport $suser@$sip 'pwd' &>/dev/null
  69. if [ $? != 0 ];then
  70. echo -e "\n無法連接到$sip"
  71. echo -e "\n可以參照下面的語句嘗試配置免密連接"
  72. echo -e "\nssh-keygen -t rsa -P ''"
  73. echo -e "\nssh-copy-id -p $sport $suser@$sip"
  74. exit 1
  75. else
  76. echo -e "\n$sip :ssh connect is OK"
  77. fi

  78. #------------------------------------------------------------------------------
  79. # 第四步: 運(yùn)行JOB,并等待結(jié)果
  80. #------------------------------------------------------------------------------
  81. #echo "ssh -o NumberOfPasswordPrompts=0 -o StrictHostKeyChecking=no -p $sport $suser@$sip sh $ProgName $Para" #此處為打印執(zhí)行命令行,以便調(diào)試判斷是否真正有入口參數(shù)
  82. echo "================================================================================"
  83. ssh -o NumberOfPasswordPrompts=0 -o StrictHostKeyChecking=no -p $sport $suser@$sip "sh $ProgName $Para"
  84. ret=$?

  85. #------------------------------------------------------------------------------
  86. # 第五步: 插件返回
  87. #------------------------------------------------------------------------------
  88. echo "================================================================================"
  89. if [[ $ret == 0 ]]; then
  90. echo "Run job success !"
  91. exit 0
  92. else
  93. echo "Run job failed !"
  94. exit 1
  95. fi
復(fù)制代碼

2、在桌面軟件admin中進(jìn)入"任務(wù)類型"功能中,設(shè)置ssh作業(yè)類型,如下圖所示:
3、在桌面軟件designer中設(shè)計 ssh 作業(yè)如下代碼片段:
  1.   <!-- 按插件的規(guī)則編寫的流程設(shè)置 -->
  2. <ssh>
  3. <name>MainModul_JobNode0</name>
  4. <progname>/home/cdchen/successjob.sh</progname>
  5. <para>para1 para2</para>
  6. <exppara>sip=47.94.203.124,suser=cdchen</exppara>
  7. <jobdesc>測試ssh作業(yè)</jobdesc>
  8. </ssh>
復(fù)制代碼

4、調(diào)試測試作業(yè)是否符合預(yù)期

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP