把你的本地主机用户的ssh公匙文件写入到远程主机用户的~/.ssh/authorized_keys文件中,具体方法是 假设本地主机localhost,远程主机remote
一:先屏蔽scp命令调用时出现的口令提示,在localhost主机里的用户
运行 ssh-keygen -t rsa
结果如下
Generating public/private rsa key pair.
Enter file in which to save the key (/home/.username/ssh/id_rsa):#回车
Enter passphrase (empty for no passphrase):#回车
Enter same passphrase again:#回车
Your identification has been saved in /home/.username /.ssh/id_rsa.
Your public key has been saved in /home/.username /.ssh/id_rsa.pub.
The key fingerprint is:
38:25:c1:4d:5d:d3:89:bb:46:67:bf:52:af:c3:17:0c username@localhost
Generating RSA keys:
Key generation complete.
会在用户目录~/.ssh/产生两个文件,id_rsa,id_rsa.pub
二:把id_rsa.pub文件拷贝到remote主机的用户目录下 然后再运行如下命令
cat id_rsa.pub >~/.ssh/authorized_keys
它将在/root/.ssh/目录下面生成authorized_keys这个文件
完成以后,在命令提示符下面输入SCP命令测试一下
如:scp /opt/dbback/data/aa.dmp.zip root@10.10.29.1:/opt/dbback/
手工测试的时候,系统会提示你Are you sure you want to continue connecting (yes/no)? yes 我在这里输入yes 回车以后,系统就开始拷贝文件
如果在手工测试过程中出现以下错误:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
89:37:d4:6d:06:aa:3b:be:70:68:ca:69:d5:39:a6:68.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:1
RSA host key for 203.158.16.11 has changed and you have requested strict checking.
Host key verification failed.
lost connection
则请删除本地机上面/root/.ssh/known_hosts这个文件即可
手工测试一下以后,我们在脚本中用SCP来拷贝的话,就可以自动拷贝,而不需要人工来干预了。
三:编写导出数据并压缩后下载到另外一台服务器的脚本程序:
#!/bin/bash
export DISPLAY=localhost:0.0
export ORACLE_BASE=/u01/app
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db-1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export LD_ASSUME_KERNEL=2.4.1
export ORA_NLS33=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG=american_america.ZHS16GBK
backupfile=sentree`date "+%y%m%d"`.dmp
/u01/app/oracle/product/10.2.0/db-1/bin/exp usrname/pass@orcl file=/opt/dbback/data/$backupfile
/bin/gzip -S .zip /opt/dbback/data/$backupfile
copyfile=sentree`date "+%y%m%d"`.dmp.zip
/usr/bin/scp /opt/dbback/data/$copyfile root@10.39.201.0:/opt/dbback/
四:在crontab中加入这个脚本程序,让它在一定的时间自动运行:
编辑/etc/crontab文件
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
0 6 * * * root /opt/dbback/oraautoback.sh
最后一行才是我们自己加入的,表示在早上六点运行这个脚本程序
这样处理以后,对于数据的安全方面我们就多了一层保护。
分享到:
相关推荐
### Linux自动备份文件并上传至远程服务器脚本实现 在Linux环境下进行自动化操作可以极大地提高工作效率,特别是对于数据备份及远程传输这样的重复性任务。本文将详细介绍如何利用Shell脚本在Linux系统上实现MySQL...
可以使用`scp`或`rsync`命令将生成的备份文件从远程服务器传输到本地。例如,如果备份脚本将文件保存在远程服务器的`/backup`目录下,可以在脚本末尾添加以下代码: ``` scp user@remote_server:/backup/your_...
本文将详细介绍如何在Linux环境下利用脚本来实现远程自动备份,包括搭建SSH无密码登录环境、配置定时任务(Cron Job)以及执行具体的备份操作。 #### 一、搭建SSH无密码登录环境 为了实现远程自动备份,首先需要...
【在Windows下配置crontab】的知识点主要集中在如何在Windows环境中使用Cygwin来实现类似于Linux中的计划任务管理。Crontab是Linux和Unix系统中用于管理周期性任务的工具,而在Windows系统中,由于Dos Scripts的功能...
本主题将详细介绍如何在两台不同的服务器之间实现SVN版本库的自动备份,以及利用金山快盘等云存储服务进行云端备份。 1. SVN自动备份原理与配置 SVN的自动备份通常通过cron job或Windows计划任务来实现,结合shell...
例如,可以将上述`tar`命令放入一个shell脚本,并在`crontab`配置文件中设定执行时间。 然而,为了实现异地备份,我们需要跨越网络。这通常涉及到`ssh`(Secure Shell)协议,它提供了加密的远程登录和文件传输能力...
在备份完成后,使用`scp`命令将备份文件通过SSH无密码方式复制到另一台服务器,这样就实现了数据的远程备份。同样的方法也可以反向操作,将B服务器的数据备份到A服务器,从而达到双机互备的目的。 在这个过程中,...
完成脚本后,同样可以将它添加到 `crontab` 中,以实现定时自动备份。 四、总结 自动备份光纤交换机配置是网络运维的关键实践,能够有效防止数据丢失并简化故障恢复流程。通过结合 `configupload` 命令、`crontab` ...
在备份完成后,你可以使用rsync或scp将备份文件从远程服务器同步到本地或其他安全存储位置。例如: ```bash rsync -avz --delete /path/to/backup.dmp user@remote_server:/path/to/remote/backup/ ``` 这里的`-a`...
这个 PERL 程序由 Tim Bunce 创建,利用 `LOCK TABLES`, `FLUSH TABLES` 以及 `cp` 或 `scp` 命令快速备份 MyISAM 表。由于 `mysqlhotcopy` 需要在包含数据库文件的同一台机器上运行,因此它不适合分布式或远程备份...
创建`reduce_db.sh`脚本,包含还原过程的逻辑,如解压备份文件并使用`mysql`命令导入数据。 2. **设置定时还原任务**: 使用`crontab -e`设置定时还原任务,例如每天早晨8点执行还原: ```bash 0 8 * * * /usr/...
然后可以通过设置Crontab任务来定期执行备份脚本,例如每天凌晨3点自动备份数据库。 ##### 3. 使用`mysqldump`备份数据库(完全+增量备份,适合中型数据库备份) 对于中型规模的数据库而言,`mysqldump`是一个更优...
2. **传输公钥至远程服务器**:使用`scp`命令将本地服务器上的公钥`.ssh/id_rsa.pub`传输到远程服务器的`.ssh/authorized_keys`文件中。 3. **执行无密码拷贝**:此后,可以使用`scp`命令在两台服务器之间无密码拷贝...
在本场景中,我们将利用Shell脚本来创建一个自动备份数据库的程序。 1. **Shell脚本基础** - Shell脚本由一系列命令组成,每个命令都在一行上,通过换行符分隔。可以包含变量赋值、条件语句、循环结构等编程元素。...
具体方法是先查询这两个命令的基本用法,然后在 `mysqlbackup` 脚本中进行适当修改,以便在备份完成后能够将备份文件传输到远程服务器。 #### 四、Windows 下 MySQL 数据库自动备份示例 1. **环境配置** - 操作...
恢复时直接将备份文件放回原目录。然而,这种方法无法实现增量备份,对大型数据库来说不实用。 2. **使用`mysqlhotcopy`**:这是一款Perl程序,适用于MyISAM表的快速完全备份。它利用`LOCKTABLES`、`FLUSH TABLES`...
5.2.2 利用通配符显示文件 110 5.2.3 显示隐藏文件 111 5.2.4 递归地列出文件 112 5.3 显示文件内容 113 5.3.1 使用cat命令显示文件 113 5.3.2 使用more命令分页显示 文件 113 5.3.3 使用less命令分页显示 文件 114 ...
5.2.2 利用通配符显示文件 110 5.2.3 显示隐藏文件 111 5.2.4 递归地列出文件 112 5.3 显示文件内容 113 5.3.1 使用cat命令显示文件 113 5.3.2 使用more命令分页显示 文件 113 5.3.3 使用less命令分页显示 文件 114 ...
在IT行业中,Linux系统的自动化备份是一项至关重要的任务,它能够确保数据的安全性和系统恢复的便捷性。本项目“自动化Linux备份”聚焦于使用Shell脚本来实现这一目标。Shell脚本是一种强大的工具,允许用户通过...