我有一个文件夹,里面有几个文件,还有一些网络服务器上的空间。我想在 linux 中的本地文件夹和远程文件夹之间进行双向同步,只是在修改时间。我该怎么做呢?顺便说一句,我无法在服务器上安装任何东西,出于所有意图和目的,它只是空间。
注意:我已经设置了 rsa 密钥对,因此它可以静默发生。
我经常发现自己在 Bash 和 Zsh 之间切换,并使用历史搜索功能来恢复命令。
但是,由于 Bash 和 Zsh 具有不同的历史文件,我经常发现我正在搜索的命令已在另一个 shell 中执行。
有没有办法在两者之间共享或同步历史?
我已经成功地使用rsync在我的笔记本电脑和上网本(都使用 ext4 和 Linux)之间同步我的主目录。我唯一的问题是,我时不时地喜欢完全重新组织某些目录,而rsync将此视为删除和创建新文件,这使得它非常缓慢且效率低下。
有人知道可以很好地处理文件移动的好软件吗?
我发现一致应该能够做到这一点,但它似乎在实践中不起作用。我通过同步两个本地目录来测试一致性,每个目录中都有一个大文件,它仍然检测到我的移动是删除+创建,实际上比rsync还要慢。
此外,如果我在几个月前查看unison的源代码时没记错的话,它试图做一些类似做 sha sums 的事情——而且我不希望我的理想解决方案做 sha sums——这在大的情况下太慢了文件/目录。我想要一些注意以下内容的东西:
" 此文件的最后一个源副本似乎已被删除,并且源目录树中的其他位置有一个具有相同 mdate、大小和 inode 编号的新文件,因此我将假设这是一个移动和相应地移动其目标副本,而不是执行删除+复制。”
能够快速同步这些机器对我来说很重要。
有什么建议?
我有一个系统文件,/etc/cron.daily/ntpupdate
它
ntpdate ntp.ubuntu.com
每天运行以与网络时间同步。每天它都会生成与此非常相似的输出:
/etc/cron.daily/ntpupdate:
16 Jan 06:30:42 ntpdate[21446]:
step time server 91.189.94.4 offset -12.646804 sec
Run Code Online (Sandbox Code Playgroud)
我不确定这91.189.94.4
意味着什么,但我很确定这-12.646804 sec
意味着我的服务器关闭了大约 12 秒。但我不知道为什么它每天都下降大约相同的数量。这是一个运行 Ubuntu 的 Amazon EC2 实例。
我只能猜测它要么每天丢失/增加 12 秒,要么其他东西将时间与另一个关闭 12 秒的时钟同步,然后我重新同步它。
我应该怎么做才能进一步追踪这个问题?我在/etc/cron.*
目录或用户的 cron 作业中没有看到任何其他cron 作业...
更新
只是想我会分享我开始每小时运行一次,看看是否会在某个时间出现大幅跳跃。这是每小时的输出:
16 Jan 15:17:04 ntpdate[8346]:
adjust time server 91.189.94.4 offset -0.464418 sec
Run Code Online (Sandbox Code Playgroud)
因此,显然每小时时钟会关闭大约半秒,因此每天(24 小时)时钟会关闭大约 12 秒是有道理的。猜猜时钟只是跑得很快!谢谢!
目前在 Ubuntu Linux 上,但我在其他操作系统上也注意到了这一点。显然任何用户都可以执行该sync
命令——但这是为什么呢?我只能看到缺点:由于不必要的磁盘写入,系统速度变慢。
为什么每个用户都可以执行sync
?
我一直在寻找适用于 Linux 的 Evernote 替代品。我知道我可以在 WINE 中使用 Everpad 或 Evernote,但它们不能在本机运行。
任何笔记应用程序都可以,只要它可以同步我的 android 和我的 linux。
我有一个服务器,它通过NFS将一个包含约 700 万个文件(主要是图像)的目录从其本地磁盘导出到网络客户端。
为了 HA,我需要添加第二个,并使其与第一个保持同步,两者之间的增量尽可能小。
研究建议为此使用lsyncd或其他基于inotify的解决方案,但鉴于创建inotify手表的文件数量需要永恒。对于同样的事情rsync的。
其他可能的解决方案似乎是DRDB,或群集文件系统,如头孢或glusterfs,可是我不得不与那些没有经验,不知道哪一个会更合适,并与许多文件以及应对并仍提供不俗的表现。
请注意,活动主要是读取,很少发生写入。
在家里,我有一台运行 arch linux 的电脑塔。最近我也在路上买了笔记本电脑,但我想在家的时候在电脑塔上工作。
现在我对我的机器的配置方式非常敏感(这就是我需要笔记本电脑的原因,我讨厌我大学的 Windows 7 工作站)。我想知道是否有办法同步这两台机器?我希望这些是彼此的“精确”克隆,所以我可以从一个切换到另一个(当然是在同步之后)。
我正在考虑使用,rsync
但我不知道这是否是最好的选择。如果是这样,我应该注意什么?有什么好的教程吗?
Also, if possible, I would also like the use the home pc as a website server, so there are some sections of the machine that need not be synced (namely the website's directories).
Just to be clear: both computers will be running Arch Linux.
我有 70 台装有 CentOS 7.2 和 chrony 版本 2.1.1 的机器,与我的 NTP 服务器协议 v3 完美同步。
最近我添加了 30 台机器 CentOS 7.4 and chrony version 3.1
,但是这 30 台机器拒绝同步,我遵循了所有的故障排除程序,但我完全不知道如何解决这个问题。命令输出:
chronyc tracking
Reference ID : 00000000 ()
Stratum : 0
Ref time (UTC) : Thu Jan 01 00:00:00 1970
System time : 0.000000013 seconds fast of NTP time
Last offset : +0.000000000 seconds
RMS offset : 0.000000000 seconds
Frequency : 11.390 ppm fast
Residual freq : +0.000 ppm
Skew : 0.000 ppm
Root delay …
Run Code Online (Sandbox Code Playgroud) 每次我将文件写入空的原始块设备时,例如
# dd if=image.iso of=/dev/sdb status=progress
Run Code Online (Sandbox Code Playgroud)
我从未使用过任何类型的sync
(即sync
; conv=fsync
; conv=fdatasync
; oflag=sync
; oflag=dsync
)。
我注意到,dd
没有永远退出,直到所有的写作完成。
我总是使用 Conky 的 I/O 工具和grep Dirty /proc/meminfo
. 此外,设备的校验和始终与写入它的文件的校验和相匹配。所以我总是 100% 确定整个文件已写入设备。
我已将文件写入 ext4 卷进行比较。例如使用:
$ dd if=/dev/urandom of=~/file bs=1M count=50 iflag=fullblock
Run Code Online (Sandbox Code Playgroud)
写入 ext4 卷时,dd
退出后在数据实际写入磁盘之前总是有大约 20 秒的延迟。
许多人提倡在sync
命令后使用dd
命令,或者在写入块设备时sync
在dd
命令中包含几个选项之一。例如这里和这里。但是,我不知道有人真正证明这是必要的。
此页面上的评论之一是:
sync
在这里毫无意义[即直接写入/dev/sdX
]。它只影响文件系统操作。
有五个人对这条评论投了赞成票,这与我的经验一致。
那么在写入块设备时,有没有dd
在所有写入完成之前退出的情况?这真的发生在任何人身上吗?
其他书写选项如何,例如cp
和cat …