如何自动将目录从Linux机器备份到Windows计算机?



我的任务是将某个目录从Linux系统转移到Windows PC上。每天0点0分01分,都要做这个手术。由于密码是不断变化的,因此禁止在源代码中使用密码。需要对下载的目录进行压缩并打上时间戳。

为了将数据从一个目录复制到备份目录,我尝试使用shell脚本。脚本如下所示:

echo "---------------SRCIPT START---------------"
date
TIMESTAMP=`date "+%Y%m%d%H%M"`
archive_files ()
{
mkdir -p $DESTINATION_PATH
cd $DESTINATION_PATH
if [ `pwd` = "$DESTINATION_PATH" ]; then
echo NOW IN `pwd`
echo STARTING RSYNC FROM $SOURCE_PATH  TO $DESTINATION_PATH
rsync -avp $SOURCE_PATH $DESTINATION_PATH
else
echo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FAILED %%%%%%%%%%%%%%%%%%%%%%%%%%%
exit
fi
}

#########################################
#       ARCHIVE LOG DIRECTORY           #
#########################################
echo "---------------STARTTING ARCHIVE OF LOG---------------"
date
echo ========================================================
SOURCE_PATH=/LOG
DESTINATION_PATH=BACKUP/$TIMESTAMP$SOURCE_PATH
echo $DESTINATION_PATH
archive_files $SOURCE_PATH $DESTINATION_PATH
##########################################
#        BACKUP FILE COMPRESSION         #
##########################################
cd  /LOG/BACKUP/
tar -cvzf $TIMESTAMP.tar.gz $TIMESTAMP

请就如何自动备份目录提出建议。

感谢

要使脚本自动化,可以将其添加为cron作业。在Linux上,运行crontab -e编辑作业,然后像这样添加作业:

1 0 * * * sh /the/full/path/to/your/script.sh

这应该在每天的00:00:01运行你的脚本。

当涉及到密码保护时,您可以使用sshpass在rsync命令中包含密码。由于不能将密码存储在源代码中,因此可以将其存储在chmod 400 protected password file中,并像这样使用它:

sshpass -f '/path/to/password/file' rsync -avp $SOURCE_PATH $DESTINATION_PATH

显然,您的计算机有固定的IP或域名,否则rsync将无法工作。对于备份,我建议在两台计算机上安装synthing (https://syncthing.net/),并通过GUI或web界面设置单向同步。

最新更新