在本地和远程主机之间需要脚本同步/匹配目录的时间戳

我有一个备份工具,从主机A复制目录并保留在主机B中。该目录包含子目录和文件。 复制完此目录及其子目录和文件后,时间戳显示当前date。 它没有显示主机A的原始时间戳

每天这个工具从主机A复制目录,并保留在主机B.我有一个脚本从源目录复制时间戳,并与目的地目录匹配。 但是这个脚本只能在本地使用。

#!/bin/bash # change timestamp accordingly to original directory of files BASE_OLD=/testing/etc BASE_NEW=/tmp/etc cd $BASE_OLD find . -printf '%P\n' | while read fname do TS=$(stat -c '%Y' "${BASE_OLD}/${fname}") TIMESTAMP=$(date -d @${TS}) touch -m -d "${TIMESTAMP}" "${BASE_NEW}/${fname}" echo "${BASE_NEW}/${fname}" done 

我需要一个脚本ssh到主机A并匹配时间戳与目录主机B.

我们不是一个脚本编写服务,我想尽pipe你可以用ssh破解一些东西。

我的build议是使用正确复制时间戳的工具,为此我build议使用rsync 。

特别是-t开关

-t,–times保存修改时间

注意-a开关包括-t

-a, – 归档归档模式; 等于-rlptgoD(no -H,-A,-X)

所以例如

 rsync -avz /testing/etc [email protected]:/home/backup 

应该将文件从本地机器复制到保留时间戳的远程机器上。