这个脚本因为也是在网上看到,时间久了忘了地址了,稍微改动了下,尽请谅解!
#vi /usr/local/bin/data_backup.sh
#!/bin/bash
BackupPath=/var/data_bk //备份路径
Mail_bk_dir=$BackupPath/mailbk //备份路径目录
LogFile=$BackupPath/backuplog //日志信息文件
MailBoxDir=/home/domains //需要备份的目录
######################################################################
# backup mail's user directories and files #
######################################################################
MailFileBk=$Mail_bk_dir/mail$(date +%Y%m%d).gz //备份生成文件名称
OldMailFileBk=$Mail_bk_dir/mail$(date +%Y%m%d --date='14 days ago').gz //14天后开始删除前一天的备份文件
if [ -f $OldMailFileBk ]
then
rm -rf $OldMailFileBk
fi
if [ -f $MailFileBk ]
then
echo "[$MailFileBk]The Backup File is exists,Can't Backup!" >> $LogFile
else
cd /home
tar zcvf $MailFileBk domains >> $LogFile 2>&1
fi
echo "-------------------------------------------" >> $LogFile
#********************************************************************#
当数据备份完,为了确保当前系统或者服务器硬盘出现物理损坏,传输到其他的电脑上进行备份。
计划任务:
#crontab -e
00 03 * * * /usr/local/bin/data_backup.sh //每天凌晨3点开始备份
00 05 * * * /usr/bin/scp /var/data_bk/mail$(date +%Y%m%d).gz root@远程IP:/路径地址
这里说明下因为默认用scp远程命令回车后是需要输入对方用户密码的,所以在此之前需要安全信任关心。
在机器Client的root和机器Server的root之间建立安全信任关系的步骤:
1. 在机器Client上root用户执行ssh-keygen命令,生成建立安全信任关系的证书
[root@Client root]# ssh-keygen -b 1024 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): <-- 直接输入回车
Enter same passphrase again: <-- 直接输入回车
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
49:9c:8a:8f:bc:19:5e:8c:c0:10:d3:15:60:a3:32:1c root@Client
[root@Client root]#
注意:在程序提示输入passphrase时直接输入回车,表示无证书密码。
上述命令将生成私钥证书id_rsa和公钥证书id_rsa.pub,存放在/root/.ssh/子目录中。
2. 将公钥证书id_rsa.pub复制到机器Server的/root/.ssh/子目录下,如果Server的/root/.ssh/下没有authorized_keys,则直接将id_rsa.pub重命名为authorized_keys,如果Server的/root/.ssh/下已经有authorized_keys文件,则将id_rsa.pub的内容添加到authorized_keys文件的尾部。[可以使用cat id_dsa.pub >> authorized_keys命令,也可以使用vim打开authorized_keys进行编译。]
3. 现在可以使用scp进行远程数据传输,同时又避免输入密码了。
阅读(510) | 评论(0) | 转发(0) |