文章目录
本文就一个shell文件的生命周期期间需要的种种操作命令进行简单介绍
本文所说的linux系统适合Centos、Ubuntu等
假设我们有个test.sh文件,如何把这个脚本拷贝到远程主机上,如何启动,如何检查脚本运行状态,本系列文章将对此进行详细介绍
test.sh里面内容
echo "hello world"
拷贝文件到linux主机
1、确认linux 系统ip地址(命令:ifconfig)
ifconfig用于配置和显示Linux内核中网络接口的网络参数。如果没有给定任何参数,ifconfig将显示当前活动的网络接口。如果单个接口参数是给定时,它只显示给定界面的状态;
一般内网连接只需要关注eth0接口的ip即可,
$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.44 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::xxx:xxx:xxxx:xxx x prefixlen 64 scopeid 0x20<link>
ether 00:xx:xx:xx:xx:xx txqueuelen 1000 (Ethernet)
RX packets 493105541 bytes 427120101560 (397.7 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 299227567 bytes 84039279907 (78.2 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
以上信息中,可以发现192.168.1.44就是这台机器内网ip
eth0作为第一个以太网接口,通常用于连接计算机与局域网或互联网。它是计算机与网络之间的物理接口,用于接收和发送数据包。
通过eth0接口,计算机可以与其他设备进行通信,例如其他计算机、服务器、路由器等。它承载着计算机与其他设备之间的数据传输,使得计算机可以通过网络进行信息交换、资源共享和远程访问。
2、远程登录到主机 ( 命令:ssh)
确定openssh运行端口
#确认sshd程序是否运行
$ ps -ef|grep sshd
# 预期返回结果
root xxxx 1 0 20xxx ? 00:01:21 /usr/sbin/sshd
#确认sshd端口
netstat -tnlp|grep sshd
#返回结果,默认为22端口
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN xxx/sshd
ssh常用参数介绍
-p 端口号: 指定SSH连接的端口。
-i: 指定密钥文件登录。
-v: 详细模式,显示详细的传输信息。
远程登录
有两种方式,一种是账号密码登录,一种是密钥登录
- 账号密码登录
#假设使用root账号登录ip为192.168.1.44 ssh端口为22的主机
ssh root@192.168.1.44 -p 22
#输入root账号密码即可
- 密钥登录
#(macOS/linux)本地生成私钥和公钥,一路回车即可,默认生成目录~/.ssh/
$ ssh-keygen
windows系统密钥生成方式,
1.打开 PowerShell(或者按下 Windows + X 并选择 “Windows PowerShell”);
2.在 PowerShell 中输入以下命令来生成 SSH 密钥:ssh-keygen -t rsa,可以选择保留默认名称,默认地址:C:\Users\{Windows主机用户名}\.ssh\id_rsa.pub
3.在弹出的窗口中输入密码,或者直接敲击回车键选择不设置密码;
4.这个时候,会得到一个公共密钥(id_rsa.pub)和一个私有密钥(id_rsa)。
拷贝公钥(id_rsa.pub)给远程机器,存放在~/.ssh/authorized_keys中,也可将内容复制、粘贴出来存放
#指定密钥远程登录
ssh -i ~/.ssh/id_rsa root@192.168.1.44
#如果是默认地址可以不带私钥地址,以下方式登录即可
ssh root@192.168.1.44
3、拷贝文件到远程主机 (命令:scp)
SCP(Secure Copy Protocol)是一种基于SSH(Secure Shell)的文件传输协议,它用于在本地主机和远程主机之间安全地复制文件和目录,或者在两个远程主机之间传输。
- 从本地复制到远程命令:
#scp [本地文件路径] [用户名]@[远程主机地址]:[远程文件路径]
scp ~/test.sh root@192.168.1.44:/home/
- 递归复制目录:
使用 -r 参数可以递归地复制整个目录,命令写法,
scp -r [本地文件路径] [用户名]@[远程主机地址]:[远程文件路径]
ssh参数介绍:
-P 端口号: 指定SSH连接的端口。
-p: 保留原文件的修改时间和访问时间。
-r: 递归复制整个目录。
-v: 详细模式,显示详细的传输信息。
-C: 启用压缩,可以加快传输速度。