`
thinktank
  • 浏览: 60717 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

在crontab中利用scp命令自动备份文件

阅读更多
把你的本地主机用户的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自动备份文件并上传至远程服务器脚本实现 在Linux环境下进行自动化操作可以极大地提高工作效率,特别是对于数据备份及远程传输这样的重复性任务。本文将详细介绍如何利用Shell脚本在Linux系统上实现MySQL...

    自动定时备份远程服务器的mysql数据库并存储在本地

    可以使用`scp`或`rsync`命令将生成的备份文件从远程服务器传输到本地。例如,如果备份脚本将文件保存在远程服务器的`/backup`目录下,可以在脚本末尾添加以下代码: ``` scp user@remote_server:/backup/your_...

    Linux 下通过脚本实现远程自动备份

    本文将详细介绍如何在Linux环境下利用脚本来实现远程自动备份,包括搭建SSH无密码登录环境、配置定时任务(Cron Job)以及执行具体的备份操作。 #### 一、搭建SSH无密码登录环境 为了实现远程自动备份,首先需要...

    在windows下配置crontab

    【在Windows下配置crontab】的知识点主要集中在如何在Windows环境中使用Cygwin来实现类似于Linux中的计划任务管理。Crontab是Linux和Unix系统中用于管理周期性任务的工具,而在Windows系统中,由于Dos Scripts的功能...

    SVN_BackUp.rar_svn 自动备份_svn备份

    本主题将详细介绍如何在两台不同的服务器之间实现SVN版本库的自动备份,以及利用金山快盘等云存储服务进行云端备份。 1. SVN自动备份原理与配置 SVN的自动备份通常通过cron job或Windows计划任务来实现,结合shell...

    在Linux上实现异地全自动备份.pdf

    例如,可以将上述`tar`命令放入一个shell脚本,并在`crontab`配置文件中设定执行时间。 然而,为了实现异地备份,我们需要跨越网络。这通常涉及到`ssh`(Secure Shell)协议,它提供了加密的远程登录和文件传输能力...

    基于SSH的linux 备份系统

    在备份完成后,使用`scp`命令将备份文件通过SSH无密码方式复制到另一台服务器,这样就实现了数据的远程备份。同样的方法也可以反向操作,将B服务器的数据备份到A服务器,从而达到双机互备的目的。 在这个过程中,...

    光纤交换机配置自动备份.docx

    完成脚本后,同样可以将它添加到 `crontab` 中,以实现定时自动备份。 四、总结 自动备份光纤交换机配置是网络运维的关键实践,能够有效防止数据丢失并简化故障恢复流程。通过结合 `configupload` 命令、`crontab` ...

    linux下远程定时备份oracle数据库

    在备份完成后,你可以使用rsync或scp将备份文件从远程服务器同步到本地或其他安全存储位置。例如: ```bash rsync -avz --delete /path/to/backup.dmp user@remote_server:/path/to/remote/backup/ ``` 这里的`-a`...

    MySQL 备份和恢复策略

    这个 PERL 程序由 Tim Bunce 创建,利用 `LOCK TABLES`, `FLUSH TABLES` 以及 `cp` 或 `scp` 命令快速备份 MyISAM 表。由于 `mysqlhotcopy` 需要在包含数据库文件的同一台机器上运行,因此它不适合分布式或远程备份...

    使用linux命令实现定时备份mysql数据+还原备份

    创建`reduce_db.sh`脚本,包含还原过程的逻辑,如解压备份文件并使用`mysql`命令导入数据。 2. **设置定时还原任务**: 使用`crontab -e`设置定时还原任务,例如每天早晨8点执行还原: ```bash 0 8 * * * /usr/...

    mysql数据库备份策略

    然后可以通过设置Crontab任务来定期执行备份脚本,例如每天凌晨3点自动备份数据库。 ##### 3. 使用`mysqldump`备份数据库(完全+增量备份,适合中型数据库备份) 对于中型规模的数据库而言,`mysqldump`是一个更优...

    linux mysql定时备份

    2. **传输公钥至远程服务器**:使用`scp`命令将本地服务器上的公钥`.ssh/id_rsa.pub`传输到远程服务器的`.ssh/authorized_keys`文件中。 3. **执行无密码拷贝**:此后,可以使用`scp`命令在两台服务器之间无密码拷贝...

    shell 脚本对数据库定时备份

    在本场景中,我们将利用Shell脚本来创建一个自动备份数据库的程序。 1. **Shell脚本基础** - Shell脚本由一系列命令组成,每个命令都在一行上,通过换行符分隔。可以包含变量赋值、条件语句、循环结构等编程元素。...

    mysql实现自动远程备份一办法

    具体方法是先查询这两个命令的基本用法,然后在 `mysqlbackup` 脚本中进行适当修改,以便在备份完成后能够将备份文件传输到远程服务器。 #### 四、Windows 下 MySQL 数据库自动备份示例 1. **环境配置** - 操作...

    mysql的备份、恢复策略

    恢复时直接将备份文件放回原目录。然而,这种方法无法实现增量备份,对大型数据库来说不实用。 2. **使用`mysqlhotcopy`**:这是一款Perl程序,适用于MyISAM表的快速完全备份。它利用`LOCKTABLES`、`FLUSH TABLES`...

    Ubuntu权威指南(2/2)

    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 ...

    Ubuntu权威指南(1/2)

    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 ...

    自动化Linux备份

    在IT行业中,Linux系统的自动化备份是一项至关重要的任务,它能够确保数据的安全性和系统恢复的便捷性。本项目“自动化Linux备份”聚焦于使用Shell脚本来实现这一目标。Shell脚本是一种强大的工具,允许用户通过...

Global site tag (gtag.js) - Google Analytics