小编Wak*_*nka的帖子

为什么 rsync 不进行增量传输

我有大约 77MB 的二进制文件:

nupic@nupic-virtualbox:~/VboxSharedFolder/experiments/sync/exp2$ ls -lah src/
total 77M
drwxrwx--- 1 root vboxsf    0 Jun 21 13:31 .
drwxrwx--- 1 root vboxsf 4.0K Jun 21 16:21 ..
-rwxrwx--- 1 root vboxsf  77M May 27  2014 binary.bin
Run Code Online (Sandbox Code Playgroud)

我一直在玩rsync它的 delta 算法功能,看看它是如何工作的。想法是在二进制文件中进行细微的差异,并查看使用多种方法传输了多少数据。为了这些目的,我制作了非常简单的脚本:

#!/bin/bash
# rsync does not trnansfers delta over local by default
sed 's%\x00\x00\x00\x20\x66\x74\x79\x70\x69\x73\x6f\x6d\x00\x00\x02\x00%\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11%' src/binary.bin > dst/binary.bin
strace -f -e trace=read,write -o rw_rsync_local_default.log rsync -avcz --progress src/ dst/

# rsync -no-W should enables delta tranfer no matter if local or …
Run Code Online (Sandbox Code Playgroud)

scp rsync

7
推荐指数
1
解决办法
3557
查看次数

Why is subshell created by background control operator (&) not displayed under pstree

I understand that when I run exit it terminates my current shell because exit command run in the same shell. I also understand that when I run exit & then original shell will not terminate because & ensures that the command is run in sub-shell resulting that exit will terminate this sub-shell and return back to original shell. But what I do not understand is why commands with and without & looks exactly the same under pstree, in this …

bash job-control jobs subshell

6
推荐指数
1
解决办法
982
查看次数

似乎允许非 root 用户使用 chown

我们正在使用 LDAP 身份验证,可能还有其他我不太了解的事情,在我们公司中,因此以下问题可能是由此产生的。我发现chown命令的奇怪行为,我不知道这是否正常。这是我的场景:

用户标记的 GID 是 SK001936,标记主目录的所有者组是 SK001778,如您所见,它们是不一样的。组 SK001778 被允许使用用户标记的主目录作为所有者(标记)的所有操作(rwx)具有:

[mark@machine ~]$ id
uid=48447(mark) gid=41795(SK001936) groups=40119(SUB_SK001936_PPS),41795(SK001936)
[mark@machine ~]$ ls -lad .
drwxrwxr-x   6 mark SK001778  4096 Oct 10 13:30 .
Run Code Online (Sandbox Code Playgroud)

用户michael和mark的GID都是SK001936:

[michael@machine mark]$ id
uid=40570(michael) gid=41795(SK001936) groups=40119(SUB_SK001936_PPS),41795(SK001936)
[mark@machine ~]$ id
uid=48447(mark) gid=41795(SK001936) groups=40119(SUB_SK001936_PPS),41795(SK001936)
Run Code Online (Sandbox Code Playgroud)

用户 michael 无法在用户标记的主目录中创建文件。问题在于 michael 不属于对 mark 的主目录具有完全(rwx)访问权限的组(SK001778):

[michael@machine mark]$ touch michael
touch: cannot touch `michael': Permission denied
Run Code Online (Sandbox Code Playgroud)

在正常情况下,即使他是文件的所有者,用户也不能发出 chown。然而,在这个例子中,主目录(标记)的所有者能够更改他自己的主目录的所有者组(从而允许属于该组的用户访问他的主目录):

[mark@machine ~]$ chown mark:SK001936 .
Run Code Online (Sandbox Code Playgroud)

现在有权访问标记主目录的组因此与 michael 的 GID 相同,因此现在允许 michael 在标记的主目录中创建/删除文件/文件夹:

[michael@machine mark]$ touch michael …
Run Code Online (Sandbox Code Playgroud)

root permissions group chown

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

命名管道:几个实验导致混乱

我遇到过各种文章和 SO 问题,但我仍然对我每天使用的东西感到困惑,但从未意识到它有多么令人困惑。我正在 Linux 中试验(命名)管道。

第一次 尝试很简单:弄清楚管道缓冲区是如何工作的:

#1
mkfifo /tmp/mypipe
#2
echo "Hello World" >/tmp/mypipe
ctrl+c
#3
cat /tmp/mypipe
Run Code Online (Sandbox Code Playgroud)

观察:当我echocat读取数据之前杀死时,没有任何内容写入管道(cat继续运行但没有从管道中读取任何内容)。我假设当您输入producent >named_pipe并退出时producent,匹配管道缓冲区大小的部分数据将被写入named_pipe并保留在此处直到被读取consument(现在我知道这不是它的工作方式)。所以我接下来做的是:

第二次 尝试是连接consument到管道的另一端:

#1
mkfifo /tmp/mypipe
#2
echo "Hello World" >/tmp/mypipe
#3
cat /tmp/mypipe
Run Code Online (Sandbox Code Playgroud)

观察cat命令显示"Hello World"消息并且两个进程都结束。这里有趣的发现是在#2 步骤期间ps -elf不显示echo命令。似乎echo正在等待有人从管道中读取数据,这就是为什么在我的第一次尝试中没有向管道打印任何内容的原因。

第三次 尝试是管道命令将“永远”运行并不断写入管道,看看会发生什么:

#1
mkfifo /tmp/mypipe
#2
yes >/tmp/mypipe
#3
cat /tmp/mypipe
Run Code Online (Sandbox Code Playgroud)

观察:这按预期工作并cat …

pipe fifo

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

sshfs 通过 mosh 隧道

我正在使用sshfsssh 隧道。这样做的原因是因为我无法直接访问要挂载文件系统的机器。

此命令建立我的隧道:

ssh -o TCPKeepAlive=no -o ServerAliveInterval=15 -o ServerAliveCountMax=3 -L 2222:192.168.1.55:22 root@beast -Nf
Run Code Online (Sandbox Code Playgroud)

而这个挂载了我的远程文件系统

sudo sshfs -o idmap=user,allow_other,reconnect,TCPKeepAlive=no,ServerAliveInterval=15,ServerAliveCountMax=3 waktana@localhost:/home/wakatana /ubuntu -p 2222
Run Code Online (Sandbox Code Playgroud)

问题是我使用了不可靠的链接,并且这个连接经常挂起(我无法访问 /ubuntu,从 /ubuntu 打开文件的文本编辑器冻结等),尽管我已经尝试过这些选项。

我读过关于mosh 的文章,我想给它一个机会,但我不知道如何使用mosh?

ssh ssh-tunneling sshfs mosh

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

Ubuntu 的下一个 LTS 版本是否基于 Debian 的实际测试版本

我从多个来源完成了这张表:

| UBUNTU VERSION | UBUNTU CODE NAME | UBUNTU RELEASE DATE | UBUNTU LTS | DEBIAN CODE NAME | DEBIAN VERSION |
|----------------|------------------|---------------------|------------|------------------|----------------|
| 16.04          | Xenial Xerus     | APRIL               | YES        | stretch / sid    | 9              |
| 15.10          | Wily Werewolf    | OCTOBER             |            | jessie / sid     | 8              |
| 15.04          | Vivid Vervet     | APRIL               |            | jessie / sid     | 8              |
| 14.10          | Utopic Unicorn   | OCTOBER             |            | jessie …
Run Code Online (Sandbox Code Playgroud)

ubuntu debian

4
推荐指数
1
解决办法
3071
查看次数

标签 统计

bash ×1

chown ×1

debian ×1

fifo ×1

group ×1

job-control ×1

jobs ×1

mosh ×1

permissions ×1

pipe ×1

root ×1

rsync ×1

scp ×1

ssh ×1

ssh-tunneling ×1

sshfs ×1

subshell ×1

ubuntu ×1