当前位置:首页 » 编程软件 » 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 18:29:59 浏览:406
切换ftp 发布:2025-07-13 18:29:07 浏览:738
锐龙哪个配置最高画质 发布:2025-07-13 18:22:34 浏览:196
压缩机工作原理图 发布:2025-07-13 18:10:15 浏览:39
黑暗追求者安卓怎么联机 发布:2025-07-13 18:10:07 浏览:617
北大保安自学编程 发布:2025-07-13 18:09:58 浏览:858
java递归排列 发布:2025-07-13 18:02:43 浏览:473
轻量云服务器如何换成d盘 发布:2025-07-13 17:58:45 浏览:931
重置腾讯云服务器时间 发布:2025-07-13 17:54:55 浏览:326
aes256java加密 发布:2025-07-13 17:54:46 浏览:710