在Linux中,如何利用Shell把10台主机的当前时间写到一个文件里边?

简介: 在Linux中,如何利用Shell把10台主机的当前时间写到一个文件里边?

在Linux中,使用Shell脚本收集多台主机的当前时间并将其写入一个文件是一个常见的任务。下面是一个详细的步骤说明,包括如何设置SSH密钥认证(以避免手动输入密码)以及编写和执行Shell脚本。

1. 设置SSH密钥认证

为了避免在脚本执行过程中需要手动输入密码,你可以使用SSH密钥认证。这意味着你需要在本地机器上生成一个SSH密钥对,并将公钥分发到每台远程主机上。

  1. 生成SSH密钥对

在本地机器上执行以下命令生成SSH密钥对:

ssh-keygen -t rsa

按照提示操作,通常你可以选择不设置密码短语(passphrase)以简化自动化过程。

  1. 分发公钥到远程主机

对于每台远程主机,你需要将公钥(通常位于~/.ssh/id_rsa.pub)添加到其~/.ssh/authorized_keys文件中。你可以使用ssh-copy-id命令来自动完成这个过程:

ssh-copy-id user@remote_host

user替换为远程主机的用户名,remote_host替换为远程主机的IP地址或主机名。对每台主机重复此操作。

2. 编写Shell脚本

接下来,你需要编写一个Shell脚本来收集时间并写入文件。

  1. 创建脚本文件

使用文本编辑器创建一个新的Shell脚本文件,例如collect_times.sh

nano collect_times.sh
  1. 编写脚本内容

在脚本文件中,输入以下内容:

#!/bin/bash  
# 定义主机列表  
HOSTS=("host1" "host2" "host3" "host4" "host5" "host6" "host7" "host8" "host9" "host10")  
# 定义输出文件路径  
OUTPUT_FILE="times.txt"
# 清空或创建输出文件  
> "$OUTPUT_FILE"
# 遍历主机列表并收集时间  
for HOST in "${HOSTS[@]}"; do
# 使用ssh获取主机的当前时间,并追加到输出文件  
echo "Time from $HOST: $(ssh $HOST date)" >> "$OUTPUT_FILE"
done
echo "Times collected and saved to $OUTPUT_FILE"

在这个脚本中,HOSTS数组包含了你要收集时间的主机列表。OUTPUT_FILE变量指定了输出文件的路径。脚本会遍历每台主机,使用ssh命令获取当前时间,并将结果追加到输出文件中。

  1. 保存并退出编辑器

nano中,按Ctrl + O保存文件,然后按Ctrl + X退出。

  1. 给脚本执行权限

在终端中,为脚本文件添加执行权限:

chmod +x collect_times.sh
3. 执行Shell脚本

现在你可以执行脚本以收集时间并将其写入文件。

./collect_times.sh

脚本会依次连接到每台主机,获取当前时间,并将结果追加到times.txt文件中。每个主机的时间前面都会加上对应的主机名。

4. 查看结果

执行完脚本后,你可以使用cat命令查看times.txt文件的内容,以验证时间是否已成功收集并写入文件。

cat times.txt

这个文件现在应该包含了从每台主机收集的当前时间信息。

综上所述,这个脚本假设你已经正确设置了SSH密钥认证,并且每台主机都允许你从执行脚本的机器进行无密码登录。如果某些主机不可用或SSH连接失败,脚本可能会显示错误信息。你可以根据需要添加额外的错误处理逻辑来增强脚本的健壮性。

相关文章
|
7天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
34 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
24天前
|
存储 Shell Linux
Linux 如何更改默认 Shell
Linux 如何更改默认 Shell
30 0
Linux 如何更改默认 Shell
|
1月前
|
Linux 开发工具 Perl
在Linux中,有一个文件,如何删除包含“www“字样的字符?
在Linux中,如果你想删除一个文件中包含特定字样(如“www”)的所有字符或行,你可以使用多种文本处理工具来实现。以下是一些常见的方法:
41 5
|
1月前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
48 6
|
1月前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
84 6
|
1月前
|
监控 Linux Perl
Linux 命令小技巧:显示文件指定行的内容
在 Linux 系统中,处理文本文件是一项常见任务。本文介绍了如何使用 head、tail、sed 和 awk 等命令快速显示文件中的指定行内容,帮助你高效处理文本文件。通过实际应用场景和案例分析,展示了这些命令在代码审查、日志分析和文本处理中的具体用途。同时,还提供了注意事项和技巧,帮助你更好地掌握这些命令。
62 4
|
1月前
|
网络协议 Linux
linux系统重要文件目录
本文介绍了Linux系统中的重要目录及其历史背景,包括根目录、/usr、/etc、/var/log和/proc等目录的结构和功能。其中,/etc目录下包含了许多关键配置文件,如网卡配置、DNS解析、主机名设置等。文章还详细解释了各目录和文件的作用,帮助读者更好地理解和管理Linux系统。
59 2
|
1月前
|
缓存 监控 Linux
|
1月前
|
Linux Shell 数据库
文件查找是Linux用户日常工作的重要技能介绍了几种不常见的文件查找方法
文件查找是Linux用户日常工作的重要技能。本文介绍了几种不常见的文件查找方法,包括使用`find`和`column`组合、`locate`和`mlocate`快速查找、编写Shell脚本、使用现代工具`fd`、结合`grep`搜索文件内容,以及图形界面工具如`Gnome Search Tool`和`Albert`。这些方法能显著提升文件查找的效率和准确性。
51 2
|
1月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
下一篇
DataWorks