我有一个备份工具,它从主机 A 复制目录并保存在主机 B 中。此目录包含子目录和文件。复制此目录及其子目录和文件后,时间戳显示当前日期。它不显示主机 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 进行匹配。
答案1
我们不是脚本编写服务,但我想你可以用 ssh 来破解一些东西。
我的建议是使用一个可以正确复制时间戳的工具,为此我建议使用同步。
特别是-t
开关
-t, --times 保留修改时间
请注意,-a
开关包括-t
-a,--archive 存档模式;等于 -rlptgoD(无 -H、-A、-X)
例如
rsync -avz /testing/etc [email protected]:/home/backup
应该将文件从本地机器复制到远程机器并保留时间戳。