簡潔的網(wǎng)站世界排名前十位
實現(xiàn)場景,要求客戶端定時將本地的日志文件傳輸?shù)椒?wù)器。
工作環(huán)境ubuntu,注意不通操作系統(tǒng)的版本不通,依賴的工具的版本也有所不同
實現(xiàn)目標(biāo)需要客戶端滿足安裝工具:
1、下載安裝sshpass
---安裝命令:sudo apt-get install sshpass
---使用實例:
基本傳輸命令如下:sshpass -p 密碼 scp 本地路徑文件 登錄用戶名@服務(wù)器地址:服務(wù)器保存路徑
---傳輸文件夾實例:
est1為所需傳輸?shù)奈募A;root是登錄服務(wù)器的用戶,后接著IP地址和將要存儲的路徑;-p后的123456是登錄服務(wù)器的密碼
sshpass -p 123456 scp -r test1 root@10.10.255.100:/home/test/
---傳輸文件實例:
home/test1/test.txt為所需傳輸?shù)奈募?#xff1b;root是登錄服務(wù)器的用戶,后接著IP地址和將要存儲的路徑;-p后的123456是登錄服務(wù)器的密碼
sshpass -p 123456 scp home/test1/test.txt root@10.10.255.100:/home/test/
---文件第一行讀取密碼連接服務(wù)器
home/test1/test.txt為要讀取的文件;root是登錄服務(wù)器的用戶,后接著IP地址
sshpass -f home/test1/test.txt ssh root@10.10.255.100
----刪除遠(yuǎn)程文件夾
/home/test為所需刪除的文件夾;root是登錄服務(wù)器的用戶,后接著IP地址;-p后的123456是登錄服務(wù)器的密碼
sshpass -p 123456 ssh root@10.10.255.100 -tt rm -rf /home/test
----遠(yuǎn)程解壓文件
命令:sshpass -p 密碼 ssh root@ip -tt tar -xzf 遠(yuǎn)程文件.tar包 -C 解壓路徑
/home/test1/test.tar為所需解壓的文件;/home/test2是解壓路徑;root是登錄服務(wù)器的用戶,后接著IP地址;-p后的123456是登錄服務(wù)器的密碼
sshpass -p 123456 ssh root@10.10.255.100 -tt tar -xzf /home/test1/test.tar -C /home/test2
【Liunx-sshpass及scp命令在linux機器間文件傳輸 傳輸文件夾 遠(yuǎn)程刪除文件夾 遠(yuǎn)程解壓文件 遠(yuǎn)程連接服務(wù)器_sshpass scp-CSDN博客】
2、下載安裝cron工具
sudo apt update? ? //更新Ubuntu軟件包列表
sudo apt install cron? ?//更新Ubuntu軟件包列表
sudo systemctl status cron? ?//?驗證cron是否安裝成功?
對于系統(tǒng)較老的版本,使用sudo service cron status 驗證是否成功
sudo service cron status
crontab -e? ?//學(xué)習(xí)cron的基本使用方法
在crontab
文件中,每一行代表一個定時任務(wù),格式如下:
* * * * * command_to_execute
- - - - -
| | | | |
| | | | +----- 星期幾 (0 - 7) (Sunday=0 or 7)
| | | +------- 月份 (1 - 12)
| | +--------- 一個月中的第幾天 (1 - 31)
| +----------- 小時 (0 - 23)
+------------- 分鐘 (0 - 59)
例如:假設(shè)你有一個腳本/home/user/backup.sh
,你希望它每天凌晨3點運行:
打開crontab
編輯器
crontab -e
添加以下行到crontab
文件中:
0 3 * * * /home/user/backup.sh
保存并退出編輯器。
現(xiàn)在,cron
服務(wù)將每天凌晨3點自動運行/home/user/backup.sh
腳本。
3、下載安裝
4、采用sshpass傳輸本地文件內(nèi)的所有文件
通過scp命令傳輸文件有最大數(shù)量的限制,因此最好采用循環(huán)文件夾內(nèi)所有的文件進行文件傳輸
傳輸腳本百度查詢的實例:
#!/bin/bash
# 遠(yuǎn)程服務(wù)器的用戶名、主機和密碼
USER='your_username'
HOST='your_host'
PASS='your_password'
# 本地和遠(yuǎn)程的文件夾路徑
LOCAL_DIR='/path/to/local/folder'
REMOTE_DIR='/path/to/remote/folder'
# 循環(huán)發(fā)送本地文件夾中的所有文件
for file in "$LOCAL_DIR"/*; do
filename="$(basename "$file")"
sshpass -p "$PASS" scp "$file" "$USER@$HOST:$REMOTE_DIR/$filename"
done
請確保你已經(jīng)安裝了?sshpass
?工具,并且將腳本中的?your_username
、your_host
、your_password
、/path/to/local/folder
?和?/path/to/remote/folder
?替換成適當(dāng)?shù)闹怠?/p>
注意:明文存儲密碼并不安全,考慮使用更安全的方法,如 SSH 密鑰或使用環(huán)境變量來傳遞密碼。