我在工作中面临噩梦。一位负责我将在下面描述的事情的同事把这个责任交给了我,现在已经离开了组织。我没有做这些事情的经验。请原谅我缺乏知识和冗长的问题-我不确定要包含/遗漏哪些信息。
背景
我们从第三方获取一些数据,这些数据被发送到 postgres 服务器,然后被带入 linux 服务器,其中一些 shell 脚本进行一些转换。然后组合数据集,然后将其发送到我们使用的数据分析工具。该过程使用 cron 自动执行。
但是,每年,我们都需要手动更新 linux 服务器上的一些元数据 csv 文件[这些文件与使用 shell 脚本的 3rd 方数据相结合]。
文件夹结构:
下面是 linux 服务器文件夹结构的样子 [使用 PuTTY 访问]:
- 另一个项目
- 另一个项目
- 我的项目
- 另一个项目
〜/我的项目>
- shell_scripts
- 采购文件
- 元文件
- 组合文件
~/meta_files>
- 2019.csv
- 2020.csv
- 2021.csv
我需要做什么
我需要做的是在 meta_files 文件夹中添加一个名为2022.csv的文件。我的本地系统上有该文件。在我同事的移交文件中,他只是说“使用 samba 共享将文件复制到 linux”。我找到了 samba 共享位置并将其设置在我的 Windows 资源管理器中。它的地址如下所示:\\smb.comp.com\prod。这里有各种各样的文件夹。
我怀疑我必须将2022.csv文件放在 samba 共享中的某个位置,然后使用 PuTTY 在 linux 服务器上运行命令。但是,我不知道把它放在哪里以及运行什么命令。
对于这么长的问题和过多的描述,我再次道歉。任何有关如何将 2022.csv 文件放到 linux 上的帮助将不胜感激。如果需要任何其他信息,请告诉我。非常感谢。
如果您已经在使用 SSH 访问 Linux 服务器,则可以反过来——通过 SFTP 连接到 Linux 服务器以直接上传文件。通常,所有接受 SSH 的服务器也接受 SFTP 连接。
PuTTY 带有
pscp
andpsftp
命令(可以使用您现有的 SSH 密钥和一切)。最近的 Windows 版本带有内置的 OpenSSH,带有
scp
和sftp
命令。它们的用法类似于 pscp/psftp。WinSCP 是一个很好的图形化 SFTP 客户端,但也有一个批处理 CLI 模式 (
winscp.com
) 和一个用于自动化的 .NET 程序集。对于手动 GUI 使用,我认为 Bitvise 也有 SFTP。FileZilla 也可以。
但是,如果 Linux 服务器必须从 SMB 共享中提取文件 – 将它放在任何您想要的位置,然后使用 Linux SMB 客户端来访问它。有几个,例如:
smbclient
来自 Samba的命令。适合一次性工作,但不适合自动化:内核级
smb3
和cifs
挂载。自动化的好选择,但首次设置需要 Linux 系统上的 root 权限。(如果 SMB 共享不支持 SMB3,请使用旧
cifs
类型。)使用“python-smbprotocol”模块的自定义 Python 脚本。适合自动化:
(我们有几个 Linux cronjobs 使用 python-smbprotocol 将文件复制到Windows 服务器,然后使用 python-pypsrp 在这些 Windows 系统上远程运行命令。)