![检查两台服务器上的文件修改情况](https://linux22.com/image/570798/%E6%A3%80%E6%9F%A5%E4%B8%A4%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84%E6%96%87%E4%BB%B6%E4%BF%AE%E6%94%B9%E6%83%85%E5%86%B5.png)
如果我在服务器 A 和服务器 B 上都有一个文件,即 /etc/file.cfg。我们如何检查服务器 A 上的文件是否比服务器 B 上的文件更新?
如果它在本地机器上,那么我们会使用 file1 -nt file2。
答案1
如果您有 ssh 访问权限,则可以尝试以下操作。请注意,没有错误检查,例如,如果远程文件不存在,则此操作将失败。
REMOTE_TIME_1=$(ssh user@remote "ls -l --time-style=+%s remote_file | cut -d ' ' -f 6")
REMOTE_TIME_2=$(ssh user@remote "ls -l --time-style=+%s remote_file | cut -d ' ' -f 6")
if (( REMOTE_TIME_1 > REMOTE_TIME_2 ));
then
echo first file is older
else
echo second file is older
fi
请注意,如果您不想每次都输入密码,您可以使用 ssh-copy-id 命令将您的公钥复制到远程服务器的 authorized_keys 文件。