ubuntu服务器网站备份,Ubuntu - 定时备份本地数据到指定服务器

Ubuntu 中,采用 scp 命令可以在不同服务器之间进行文件复制.

用法:# 文件复制

scp local_file username@ip:/server_path

# 文件夹复制

scp local_filepath username@ip:/server_path

注:scp 命令每次都需要输入密码.

1. 设置无密码从主机 A 到主机 B 的文件复制

[1] - 在主机 A 生成配对密钥:ssh-keygen -t rsa

在 /home/username/.ssh 路径生成两个文件:私有密钥-id_rsa和公共密钥- id_rsa.pub.

[2] - 重命名id_rsa和 id_rsa.pub,以便于标识.mv id_rsa id_rsa_serverB

mv id_rsa.pub id_rsa_serverB.pub

[3] - scp生成的密钥 id_rsa_serverB.pub 到主机 B 的 /home/username/.ssh 路径:scp /home/username/.ssh/id_rsa_serverB.pub username@ip:/home/username/.ssh/

此时还需要输入密码.

[4] - 在主机 B 中,将 id_rsa_serverB.pub 内容追加注入到主机 B 的authorized_keys 文件中:cat /home/username/.ssh/id_rsa_serverB.pub >> /home/username/.ssh/authorized_keys

完成后,则主机 A 到主机 B 的文件拷贝复制就不需要输入密码了.

注: 主机 A 和主机 B 一定要有相同的用户.

2. 定时备份主机 A 数据到主机 B

2.1 备份 shell 脚本

auto_backup.sh:#!/bin/bash

# 本地路径

LocalBackupDir=/path/to/local_dir (自行指定)

# 本地文件

LocalBackupFile=$LocalBackupDir/backup_file (自行指定)

# 服务器中备份文件保存路径

RemoteBackupDir=/path/to/server_backup_dir (自行指定)

# 服务器 IP 地址

RemoteIP= server_ip(自行指定)

# 服务器登录账户

RemoteUser=username (指定用户名,如,root, username)

# 当前系统日期

DATE=`date +"%Y-%m-%d"`

# 本地 Log 存放路径

LogFile=$LocalBackupDir/log/$DATE.log

# 新建日志文件

touch $LogFile

# 追加日志到日志文件

echo "Auto backup LocalFile to remote server" >> $LogFile

echo "Start at $(date +"%Y-%m-%d %H:%M:%S")" >> $LogFile

echo "-------------------------------------" >> $LogFile

# 输出日志,打印出每次scp的文件名

echo "The file to scp to remote server is: $LocalBackupFile " >> $LogFile

echo "-------------------------------------" >> $LogFile

#备份到远程服务器

scp $LocalBackupFile $RemoteUser@$RemoteIP:$RemoteBackupDir

#追加日志到日志文件

echo "-------------------------------------" >> $LogFile

2.2 crontab 定时执行脚本

编辑 etc/crontab 文件,添加要执行的任务:sudo vim /etc/crontab

未添加备份任务 前的文件内容:# /etc/crontab: system-wide crontab

# Unlike any other crontab you don't have to run the `crontab'

# command to install the new version when you edit this file

# and files in /etc/cron.d. These files also have username fields,

# that none of the other crontabs do.

SHELL=/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command

17 * * * * root cd / && run-parts --report /etc/cron.hourly

25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )

52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

#

在 /etc/crontab尾部添加备份任务的shell 脚本: - auto_backup.sh# 添加定时计划任务,每天 2:00,执行脚本

0 2 * * * username /path/to/auto_backup.sh

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值