怎麼會想用shell script來做這件事?用Apache+PHP或.NET CORE不好嗎?
header('Content-type: text/csv');
header('Content-disposition: attachment;filename=MyVerySpecial.csv');
echo "aaa,bbb,ccc,ddd,eee";
其實並不太建議讓web語言來去跑伺服命令。
而且你這個還有下載的問題存在。也就是說會有機會有時間差的問題。
基本我會建議你用一個中間介接處理。而不要直接讓你的web去跑sh命令。
早期的做法給你參考。
1.web部份設計成預定下載的命令。一但啟用就會在某個目錄下生成一個命令檔。
2.設定一個排程,將其sh採用call sh的方式來處理。處理完後清空命令檔。
3.web設計一個表格,用來判斷命令檔及實際生成檔。但命令檔還存在則出現「等待處理」,當生成檔已出現命令檔不存在才出現「下載」
ssh user@remote_host "bash -s script.sh" > /yourpath/output.csv
絕對路徑方式
ssh user@remote_host "/scriptlocatin/script.sh" > /yourpath/output.csv
測試帳號密碼是否正確以及遠端呼叫是否正常執行,請自行修正 ls 所在路徑
ssh user@remote_host "/bin/ls -l" > /yourpath/lsoutput.txt
感謝, 我有找到類似範例如下
for i in /var/example/attachments/ver003/112/24 /var/example/attachments/ver003/10/13/12 /var/example/attachments/ver003/119/12; do
du $i -sh | awk -v p=$i '{print p,":",$1;}'
done
要如何將每個路徑指定一個簡稱給他,當輸出到csv的時候會顯示簡稱,而不是它實際路徑
你可以搭配 seq 先產生流水號
感謝
我使用=row(), 但我試著將此空白csv檔案傳到 linux主機上, 在透過**./run.sh > result.csv**, 但原本的流水號就變空白了
是否有其他建議