1
我想遠程執行一個perl腳本,它通過ssh從stdin獲取數據。 棘手的部分是,我不想將腳本本身上傳到遠程服務器。 遠程腳本將從標準輸入讀取的數據由本地運行的另一個perl腳本生成。如何通過ssh將本地輸出重定向到stdin以遠程執行本地腳本?
假設如下:
- 我的本地腳本生成的數據被稱爲cron_extract_section.pl將被遠程運行被稱爲cron_update_section.pl
- 兩個腳本一個參數上
- 我的本地腳本命令行,一個簡單的字
我設法遠程執行腳本,如果腳本存在於遠程機器上:
./cron_extract_section.pl ${SECTION} 2> /dev/null | ssh [email protected] ~/path/to/remote/script/cron_update_section.pl ${SECTION}
我也知道,我可以不具有使用以下語法先上傳它運行在遠程服務器上的腳本:
ssh [email protected] "perl - ${SECTION}" < ./cron_update_section.pl
什麼,我無法弄清楚是怎麼餵養本地腳本cron_update_section.pl通過ssh傳遞給perl,並且還將本地腳本cron_extract_section.pl的結果傳遞給perl。
我嘗試以下,perl腳本執行罰款,但沒有什麼從標準輸入讀取:
./cron_extract_section.pl ${SECTION} 2> /dev/null | ssh [email protected] perl - ${SECTION} < ./cron_update_section.pl
你知道,如果有可能,而無需修改腳本,這樣做呢?