當前位置:首頁 » 編程軟體 » shell腳本scp

shell腳本scp

發布時間: 2023-04-26 21:13:16

A. shell腳本scp可以在windows和linux之間傳東西嗎

windows裝了ssh server才可以

B. shell腳本 我想scp 一個文件過去並把它解壓 如何下 執行後卻沒有顯示什麼 有沒有報錯

小括弧沒有成對,只有一半。

done出現了兩次。


<<EOF

命令

EOF

這兩個EOF必須成對出現,中間是要遠程執行的命令,如果unzip是在遠端機器上執行,就要寫到中間去。第二個EOF必須頂格寫,前後不能有空格。


試試這樣:

#!/bin/sh
filepath=scp.txt
whilereadline
do
echo$ine
scpjdk.zipampmon@${line}:/smp/lll/
sshampmon@$line<<EOF
cd/smp/lll
unzipjdk.zip
EOF
done<$filepath

C. shell腳本中如何實現scp自動輸入密碼

配置ssh認證銷源就可以不輸入密碼了,可以使用這個鏈接的zcmd工具,虧歲態雀攜https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/ztools

D. shell腳本中解決SCP命令需要輸入密碼的問題

答案:使用密鑰文件。

這里假設主機A(192.168.1.3)用來獲到主機B(192.168.1.4)的文件。
在主機A上執行如下命令來生成配對密鑰:
ssh-keygen -t rsa
遇到提示回車默認即可,公鑰被存到用戶目錄下.ssh目錄,比如root存放在:
/root/.ssh/id_rsa.pub

將 .ssh 目錄中的 id_rsa.pub 文件復制到 主機B 的 ~/.ssh/ 目錄中,並改名為 authorized_keys,
到主機A中執行命令和主機B建立信任,

例(假設主機B的IP為:192.168.100.4):scp ~/.ssh/id_rsa.pub 192.168.100.4:/root/.ssh/authorized_keys

下面就可以用scp、ssh命令不需要密碼來獲取主機B的文件了
ssh 192.168.100.4 回車就不需要密碼了。
註:其實id_rsa.pub內容添加到對方機器的authorized_keys中就行了

拷貝其他伺服器附件歸集到主伺服器bash shell

[ [email protected] ~]$ cat .bash

scp -r [email protected] :/home/test1/tomcat/webapps/app01/WEB-INF/attachment/* /home/test/tomcat/webapps/app01/WEB-INF/attachment/
echo "done! app02. finish"
scp -r [email protected] :/home/test2/tomcat/webapps/app01/WEB-INF/attachment/* /home/test/tomcat/webapps/app01/WEB-INF/attachment/
echo "done! app03. finish"

增加定時任務

crontab -e

類似編輯vi 在裡面粘貼

---shift+zz保存,重啟crond服務

root]# service crond restart

引用自 https://www.cnblogs.com/java2sap/p/11424587.html

E. 如何在shell腳本中實現 scp 文件的時候不手動輸入密碼

在shell腳本中實現 scp 文件的時候不手動輸入密碼的腳本如下:

#!/usr/bin/expect -f

set password 密碼

spawn scp 用戶名@目標機器ip:拷貝文件的路徑 存放本地文件的路徑

set timeout 300

expect "用戶名@目標機器ip's password:" #(注意:這里的「用戶名@目標機器ip」 跟上面的一致)

set timeout 300

send "$password "

set timeout 300

send "exit "

expect eof

附:scp參數

-r:拷貝目錄

-c:允許壓縮

一個完整的例子

#!/usr/bin/expect -f

set password 123456

#download

spawn scp [email protected]:/root/a.wmv /home/yangyz/

set timeout 300

expect "[email protected]'s password:"

set timeout 300

send "$password "

set timeout 300

send "exit "

expect eof

#upload

spawn scp /home/yangyz/abc.sql [email protected]:/root/test.sql

set timeout 300

expect "[email protected]'s password:"

set timeout 300

send "$password "

set timeout 300

send "exit "

expect eof

F. jenkins執行shell腳本,使用scp免密傳輸失敗問題

問題:Jenkins默認使用jenkins用戶去啟動,jenkins用戶並沒有許可權去執行ssh免沒巧襪密登陸,所以導致執行失敗

註:配置linux雙機互信後,jenkins也需要將公鑰加入到目標機器,才能達到shell腳本中scp免密傳輸的條件

一、驗證登錄

1、切換jenkins用戶

# su jenkins

切換後還是root賬號

2、分析解決:

2.1 應該枯激是/etc/passwd文件中的/bin/bash被yum安裝的時候變成了/bin/false

# vim /etc/passwd

jenkins:x:990:988:Jenkins Automation Server:/var/lib/jenkins:/bin/false( bash)

將bin/false改為/bin/bash

再次執行切換

# su jenkins

bash-4.1$

2.2  結果命令提示符的用戶名不是jenkins而變成了 bash-4.1$,原因是在安裝jenkins時,jenkins只是創建了jenkins用戶,並沒有為其創建home目錄

# vim ~/.bash_profile

在文件的最後添加 export PS1='[\u@\h \W]\$',執行文件使修改項起作用

# source ~/.bash_profile

驗證是否成功   # su jenkins

二、為jenkins系統用戶開啟免密登錄

1、在Jenkins的使用過程中,如果在腳本中使用到sudo命令,有可能出現如下所示的錯誤:

sudo: no tty present and no askpass program specified

這是因為Jenkins伺服器在執行sudo命令時的上下文有誤,導致這個命令執行的異常。

2.1 解決方法:

# sudo visudo

在文件末尾加上jenkins ALL=(ALL) NOPASSWD: ALL

2.2 重啟jenkins,測試

# su jenkins

# sudo su -s /bin/bash jenkins

測試成功,jenkins免密登錄成功。

PS:如果誤操作修改了/etc/sudoers的許可權來修改上述文件,則會導致如下所示的錯誤:

sudo :/etc/sudoers is world writable

sudo : no valid sudoers source found, quitting

sudo : unable to initialize poling plugin

這是Linux的一種保護機制。因此,如果出現上述誤操作,則需要執行如下命令來解決:

$ pkexec chmod 0440 /etc/sudoers

三、jenkins用戶開通ssh免密登錄

1、安裝ssh

# yum install ssh

1.1 將ssh服務設置開機自啟寬猛

# sudo systemctl enable sshd

1.2 啟動ssh

# sudo systemctl start sshd

2、生成jenkins用戶秘鑰證書

# su jenkins

# ssh-keygen -t rsa

2.1 查看是否生成成功

# /var/lib/jenkins/.ssh/

# ls

3、將公鑰傳輸到目標linux系統

ssh--id -i /var/lib/jenkins/.ssh/id_rsa.pub root@目標ip:path

------------------------------------------------------------------------------------------

參考:https://blog.csdn.net/weixin_43840640/article/details/90371472

G. linux ftp拷貝window上的文件

自己可以根據ftp的操作過程,寫一個shell腳本。簡單的選擇文件下載(如你的例子)可以用mget
20120512072*
.*
這樣的方式來進行。復雜的下載策略寫腳本比較麻煩,建議裝rsync等專用開源軟體來實現,某個版本的winscp也能實現比較簡單的自動過濾下載功能。

H. xshell怎麼移動文件到另一個目錄

xshell怎麼移動文件到另一個目錄
1、從一個伺服器復制到另外一個伺服器

第一步:進入存有目標文件的伺服器文件目錄:

/app/weblogic/wls12130/user_projects/upload/

第二步:執行下面命令進行復制

scp -r test.war(文件名.文件後綴 ) root(目標伺服器賬號)@21.1.1.xxx(目標伺服器地址):/app/weblogic/wls12130/user_projects/upload/(目標路徑)
2、文件下載到本地 sz命令 – 基於ZModem協議下載文件到本地

下載指定的某個文件:

[root@linuxcool ~]# sz an.cfg
…………彈出窗口中選擇本地保存路徑即可…………
以文本方式批量下載指定的多個文件:

[root@linuxcool ~]# sz -a /etc/*
…………彈出窗口中選擇本地保存路徑即可…………
以二進制方式下載指定的某個文件:

[root@linuxcool ~]# sz -b File.tar.gz
…………彈出窗口中選擇本地保存路徑即可…………
3、上傳文件 rz命令 – 基於ZModem協議上傳文件到伺服器

上傳指定的文件到伺服器:

[root@linuxcool ~]# rz
…………彈出窗口中選擇要上傳的文件即可…………
上傳指定的文件到伺服器,遇到重名的文件直接覆蓋:

[root@linuxcool ~]# rz -y
…………彈出窗口中選擇要上傳的文件即可…………
上傳指定的文件到伺服器,遇到重名的文件不要覆蓋:

[root@linuxcool ~]# rz -p
…………彈出窗口中選擇要上傳的文件即可…………

I. Linux 命令 & shell 腳本之01(cp & scp命令)

Linux cp命令主要用於復制文件或目錄

1.語法

2.參數說明

3.案例
3.1. cp 命令基本用法

3.2 復制目錄

3.3 復制軟鏈接文件

3.4. 保留源文件屬性復制

3.5. "-l" 和 "-s" 選項

4.cat

6.linux快速刪除大量文件

J. 2台linux機器通過scp拷貝文件,如何用shell腳本對比是否拷貝完整

遠程機器上保存一個md5文件記錄要拷貝文件列表的md5值,格式如下:

文件名1md5sum1
文件名2md5sum2
文件名3md5sum3

scp同時獲取該md5文件到本地。

在本地用md5sum重新計算各文件的md5值,與md5文件中的對比,以此校驗。

熱點內容
安卓如何進入賞金賽 發布:2025-07-13 10:44:48 瀏覽:812
obd源碼android 發布:2025-07-13 10:43:59 瀏覽:795
編譯器錯誤cs0016 發布:2025-07-13 10:42:36 瀏覽:771
c語言二進制代碼 發布:2025-07-13 10:27:28 瀏覽:19
kc杯腳本 發布:2025-07-13 10:27:22 瀏覽:614
android選中變色 發布:2025-07-13 10:23:09 瀏覽:953
進程隱藏源碼 發布:2025-07-13 10:11:29 瀏覽:744
安卓如何實名認證和平精英 發布:2025-07-13 10:09:27 瀏覽:235
arduino編程入門 發布:2025-07-13 09:59:22 瀏覽:87
Filterandroid 發布:2025-07-13 09:57:44 瀏覽:943