小编And*_*rej的帖子

在gnu并行中跟踪状态/进度

我已经在我们的主要脚本之一中并行实现了服务器之间的数据迁移。目前,输出以漂亮的颜色同时全部显示(-u),并根据正在运行的序列(例如5/20: $username: rsyncing homedir或5/20: $username: restoring account)执行功能的状态周期性回显。这些都直接回显到运行脚本的终端,并在那里积累。但是,根据命令运行的时间长短,输出最终rsync可能会混乱不堪,长时间运行的命令可能会在随机播放中丢失。但是,我不想等待长时间运行的进程完成才能获得后续进程的输出。

简而言之,我的问题是跟踪正在处理哪些参数并仍在运行。

我想做的是与并行发送到后台,(parallel args command {#} {} ::: $userlist) &然后跟踪每个正在运行的功能的进度。我最初的想法是每隔几秒钟就使用ps并grep随意地tput重写屏幕。我通常并行运行三个作业,因此我想要一个显示例如以下内容的屏幕:

1/20: user1: syncing homedir
current file: /home/user1/www/cache/file12589015.php

12/20: user12: syncing homedir
current file: /home/user12/mail/joe/mailfile

5/20: user5: collecting information
current file: 
Run Code Online (Sandbox Code Playgroud)

我当然可以将上述状态输出汇总在一起没问题,但是我目前的麻烦是将输出从各个并行进程中分离成三个不同的管道。变量?文件?以便可以将其解析为以上信息。

bash gnu-parallel

5
推荐指数
1
解决办法
909
查看次数

rsync 内容作为 sudo 用户

我有一个经销商 Web 服务器,我正在将其迁移到一台新机器上。源服务器所有者提供了一个用户(我们称之为用户 A),该用户对其他用户具有 sudo 访问权限,但对 root 没有权限。我的用户没有对我需要拉取的文件的直接文件访问权限,但我可以对正确的用户(对于我们的示例是用户 B)执行 sudo 并获取正确的内容。

我有一个从我的用户到目标机器的 ssh 密钥设置,但这显然不会传递给其他用户。我可以在 sudo 作为单个内容用户时传递目标服务器的密码,但对于要移动的数据量和要 sudo 的用户数量,这非常繁琐。

所以,我的问题是,有没有办法可以访问属于用户 B 的内容,我有 sudo 访问权限但没有直接访问权限,但是验证我的 rsync ssh 连接并以用户 A(我的 linux 用户)身份运行完整的 rsync 命令?

rsync sudo

2
推荐指数
1
解决办法
6619
查看次数

标签 统计

bash ×1

gnu-parallel ×1

rsync ×1

sudo ×1