1、设计一个脚本,使用位置变量的方式,登录到自己同学的虚拟机中去 2、在他的root根目录底下新建一个自己名字的文件
时间: 2024-09-06 10:06:28 浏览: 35
为了设计一个简单的bash脚本来登录到一个同学的虚拟机并新建一个文件,我们可以创建一个名为`login_and_create_file.sh`的文件,内容如下:
```bash
#!/bin/bash
# 获取命令行参数:用户名(假设同学的用户名是同学名),远程主机IP地址(或域名)
username=$1
host=$2
# 使用SSH登录虚拟机,需要提供密码(这里仅示例,实际应用中请使用密钥对安全连接)
echo "Enter password for $username on $host:"
read -s password
ssh $username@$host << EOF
# 创建一个新的文件,文件名是你自己的名字
touch ~/$(basename $0).txt
echo "File created with your name!"
EOF
# 提示用户输入结束后关闭SSH会话
echo "Press Enter to exit..."
read
exit 0
```
要在终端上运行这个脚本,并将你的用户名和同学的虚拟机信息作为参数传递,例如:
```sh
./login_and_create_file.sh 同学名同学的IP地址或域名
```
当运行脚本时,它会提示你输入密码,然后在远程机器的`~`目录下创建一个以脚本文件名命名的新文本文件。
注意:为了安全起见,上述脚本没有包含实际的密码输入机制,生产环境中应使用SSH密钥对或者使用更安全的交互式口令管理工具如expect。
相关问题
shell1、设计一个脚本,使用位置变量的方式,登录到自己同学的虚拟机中去 2、在他的root根目录底下新建一个自己名字的文件
首先,设计一个简单的shell脚本来实现这个功能,你需要确保你有权限访问并登录到你的同学的虚拟机。这里假设你已经通过SSH协议得到了他们的用户名(`username`)、密码(`password`),以及虚拟机的IP地址(`ip_address`)。你可以使用bash或sh作为基础环境。
```bash
#!/bin/bash
# 获取位置参数
if [ $# -ne 3 ]; then
echo "Usage: $0 <username> <password> <ip_address>"
exit 1
fi
# 确保有足够的参数
username="$1"
password="$2"
ip_address="$3"
# 登录到同学的虚拟机
echo "Logging in to virtual machine..."
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$username@$ip_address" << EOF
# 这里需要替换为实际的密码输入提示
echo $password
# 新建一个文件,文件名是你自己的名字
touch ~/$username.txt
# 检查是否成功创建
ls -l ~/$username.txt
EOF
# 如果登录失败,脚本会终止
exit_code=$?
if [ $exit_code -eq 0 ]; then
echo "Successfully logged in and created a file."
else
echo "Failed to login or create the file. Exit code: $exit_code"
fi
```
运行此脚本时,你需要提供同学的用户名、密码以及虚拟机的IP地址,例如:
```bash
./login_script.sh your_classmate_username your_password 192.168.1.100
```
阅读全文