从linux服务器 定时备份数据 到本地windows电脑

📅 2026/7/11 7:42:59 👁️ 阅读次数 📝 编程学习
从linux服务器 定时备份数据 到本地windows电脑

整体思路:
1、windows设置共享文件夹,让linux写入
2、使用定时任务 定期备份

一、共享文件夹

1、新建用户

此电脑,右键—选择管理;
在系统工具—本地用户和组—用户,鼠标在空白处右键点击 新用户;
填写用户名和密码,勾选不更改密码密码不过期
点击创建,就可以在右侧看到新建的用户了

2、新建共享文件夹

右键要共享的文件夹,选择属性–点击共享选项卡—共享—输入上一步新建的用户名—点击添加、共享----点击应用、确认。
完成后,在共享处可以看到共享的网络地址。

3、在linux服务器上

mount-tcifs-ousername="win上选择的用户名",password="win上选择的用户密码"//windows的IP地址/share /home/win/ 示例:mount-tcifs //192.168.X.XXX/share /home/win-ousername="s",password="123"/home/win/是共享文件夹在linux的目录,或者说是存放位置 //192.168.X.XXX/share是本地共享目录的存放位置/路径

如果你在linux 服务器上看到共享录下的文件,则共享成功。

二、定时任务

1、先写备份的可执行文件backup.sh
我这块的是复制源目录下近三天的文件

#!/bin/bashSOURCE="/data/source"# 源目录(包含20260705这类日期文件夹)DEST="/data/target"# 目标目录LOG="/var/log/3day_sync.log"echo"===== 最近3天目录同步开始$(date)=====">>"$LOG"mkdir-p"$DEST"# 生成最近3天的日期目录名(格式YYYYMMDD)DAY1=$(date+%Y%m%d)# 今天DAY2=$(date-d"1 day ago"+%Y%m%d)# 昨天DAY3=$(date-d"2 days ago"+%Y%m%d)# 前天# 循环复制最近3天的目录forDAYin$DAY1$DAY2$DAY3;doif[-d"$SOURCE/$DAY"];thenecho"正在同步目录:$DAY">>"$LOG"cp-rp"$SOURCE/$DAY""$DEST/">>"$LOG"2>&1elseecho"目录$DAY不存在,跳过">>"$LOG"fidoneif[$?-eq0];thenecho"最近3天目录同步成功">>"$LOG"elseecho"最近3天目录同步失败">>"$LOG"fiecho"===== 同步结束$(date)====="$'\n'>>"$LOG"

3、添加定时任务 crontab

1、编辑定时任务列表crontab-e2、写入定时规则(常用两种示例) 示例1:每天凌晨2点自动执行(推荐) 按 i 进入编辑状态02* * * /usr/local/bin/backup.sh 格式说明:分 时 日 月 星期 执行命令02* * *:每天 02:00 运行 写入后按 Esc,输入 :wq 保存退出。 三、定时任务管理命令# 查看当前已配置的定时任务crontab-l