iT邦幫忙

2

Linux 環境,定期上傳及下載檔案方式

  • 分享至 

  • xImage

大家好,我是死腦筋的資深菜鳥工程師,又來麻煩大家提供意見及想法。

目前「管理」的 Linux (Redhat 家族的) 主機數有約 170 台,想要將一些動作自動化及格式後,下載回來稍稍加工就可以使用,以省去每台登入並操作指令的機器人行為。

目前主機上的 Script 分成產製分割區使用狀況及安裝套件的版本兩部份,然後再配合 WinSCP 的 CMD 模式加上 Script 去下載,只是這個行為會觸發告警的通報,然後若是沒有適時的更新資訊,有可能會有遺漏,所以在想每台主機在產生檔案後,全部集中上傳到某台主機上,而若是我的 Script 若是有更新,也可以放到該主機上,讓各主機自行下載回去。

看了 scp 、 sftp 跟 rsync , rsync 利用模組的方式可以很容易的指定使用者及密碼,以及上傳設定 (上傳產生出的檔案),但是想不出來要如何將檔案下載下來 (新 Script),若是使用非模組方式,則都會有輸入密碼的問題,找了些文章,沒有找到可以輕易處理這部份的內容。
想來請教這個需求,除了我提到的方式外,還有沒有別的我不知道的方法?因為 GCB 的關係,所以利用 Key 的方式來「免輸密碼登入」應該是不可行。

謝謝大家!

看更多先前的討論...收起先前的討論...
froce iT邦大師 1 級 ‧ 2024-10-08 12:37:58 檢舉
https://chusiang.gitbooks.io/automate-with-ansible/content/
rsync
sorry沒打完
sshpass -p 'abc123' rsync /var/mail banana@10.20.30.119:/backups/var -ruv
wdchiang iT邦新手 2 級 ‧ 2024-10-09 10:32:34 檢舉
免輸密碼登入 -> 要開啟 SSH 遠端驗證
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2

一般像是共用的程式類,我會建議以下方式來處理

  1. GIT控制。
  2. S3第三方儲存體。
  3. SMB開雲端硬碟。

其它的還有如下方式

  1. 配合WEB SERVER的情況下
    1.wget 下載指令請求
    2.curl 下載請求
    2.配合 FTP、SFTP的方式
    1.指令登入下載處理

即於資料同步,GIT方式就不建議了。但SMB或S3的部份還是可以使用。

canchang iT邦新手 3 級 ‧ 2024-10-14 14:54:05 檢舉

這個感覺好複雜、好龐大,小小的工作應該用不到。
謝謝回應。

0
MatthewWangUS
iT邦新手 3 級 ‧ 2024-10-08 16:06:59

各主機資料寫到某台DB?

canchang iT邦新手 3 級 ‧ 2024-10-14 14:55:03 檢舉

我只想只會寫簡單的 Script ,還沒有跟 DB 打過交道。
謝謝回應。

0
rin0913
iT邦新手 5 級 ‧ 2024-10-08 19:20:09

這種批量管理工作一律推薦 Ansible。

canchang iT邦新手 3 級 ‧ 2024-10-14 14:57:43 檢舉

Ansible 應該是我下一個課題,想要拿這個來套用 GCB ,不知道會不會很難呀?我是那種「萬事起頭難」的人,有幾個範例可以參考 (抄、修改) ,可能會容易入門一些。
目前的這項工作,應該還用不上。
謝謝回覆。

1

如果我沒有會錯意,
或許所有機器都 mount 同一個 nfs 目錄,script 也放在這個目錄下,
產出的report 也都寫進這個目錄放,就不用 scp / rsync 了,
這樣能避免用 Winscp 觸發告警的問題?

canchang iT邦新手 3 級 ‧ 2024-10-14 14:59:10 檢舉

這邊網路管很嚴,NFS 的申請應該不會被通過。
謝謝回覆。

0
chuway
iT邦新手 2 級 ‧ 2024-10-09 13:45:42

可以使用expect指令,可以模擬鍵盤輸入
cat test.exp
#!/usr/local/bin/expect
spawn telnet 10.1.0.X
expect Username:
send "admin\n"
expect Password:
send "1234\n"
expect "admin#"
send "ls\n"
expect "admin#"
send "exit\n"

改一下telnet 變成 ftp /ssh....都能跑
170台如果架構差不多,改一下IP即可,如要每台要裝NTS/Samba/Web會死人

我這有20幾台各式L2交換器,要定期或立即抓各台各埠資料,就是者麼做
把螢幕回應抓回來,再慢慢用regex分析分類入檔

froce iT邦大師 1 級 ‧ 2024-10-09 15:05:32 檢舉

Ansible就是在做這個的...

0
nihs903222
iT邦新手 5 級 ‧ 2024-10-09 19:52:17

前陣子腳本從ftp轉sftp也有遇到沒辦法帶user password的問題
發現一個套件可以完美解決:lftp (走sftp還是要連過一次產生指紋)
剛好redhat系列的repo應該就有
以下範例, 不清楚就看man page吧

lftp -u $user,$password sftp://$ip <<EOF

lcd $dir_local
cd $dir_remote
put $file_local
get $file_remote
bye

EOF
canchang iT邦新手 3 級 ‧ 2024-10-14 14:52:35 檢舉

感謝!sshpass 好像也能達到此一功能,再想想,再想想。

我要發表回答

立即登入回答