【如需要时时备份的话,看此链接:https://www.cnblogs.com/drgcaosheng/p/12186740.html】

数据需要定时的备份至其它的目录中,但是备份之前检查检查一下是否有rsync正在运行,曾经因为数据过大,导致有很多rsync进程在跑,然后服务器有出现卡死的现象。最终写了一条bash,先检查一下是否有这个进程,然后再来进行处理,只是简单的做记录,大神勿喷

《有小伙伴同步的时候反馈说远程的备份需要密码,其实我有偷偷的使用 ssh-keygen 生成过key,所以不需要密码的,下面是生成key的步骤》

1. 在需要备份的服务器上面运行

#ssh-keygen
然后一路回车

2.通过ssh-copy-id复制文件至远程的机器上面

#ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.100

输入一下密码即可

1. 先直接设置一下crontab的定时任务

[root@localhost mail]# crontab -l
*/5 * * * * bash /usr/local/mail/backrsync.sh
[root@localhost mail]#

2. 下面贴一下简单的bash的小脚本,前面是默认的常用的function,偷懒,直接复制过来了。

#!/bin/bash
# Filename: backrsync.sh #printlog 函数说明
#两个参数,一,是否打印日志,二,日志内容
#一可选,,,0表示不打印日志内容出来,1表示打印日志内容出来
LOGFILE_PATH="/var/log/zdrsynclog"
NOWTIME=`date "+%Y-%m-%d %H:%M:%S"`
function printlog()
{
LOG_CONTENT="$NOWTIME $2"
#echo $LOG_CONTENT
if [ $ -ne ]; then
echo $LOG_CONTENT
echo $LOG_CONTENT>>$LOGFILE_PATH
else
echo $LOG_CONTENT>>$LOGFILE_PATH
fi
} #检查上一条命令执行是否正常,不正常退出
check_error_exit()
{
#echo $?"+++++++++++"
RUSELT=$?
if [ ${RUSELT} -ne ]; then
printlog "#[ERROR] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
printlog "#[ERROR] 恭喜,光荣而伟大的报错了 : "$
printlog "#[ERROR] <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
exit
fi
} #输出颜色字体
function echo_colour()
{
if [ $ -eq ]; then
echo -e "\033[41;37m ${2} \033[0m"
return
fi if [ $ -eq ]; then
echo -e "\033[43;37m ${2} \033[0m"
return
fi if [ $ -eq ]; then
echo -e "\033[47;30m ${2} \033[0m"
return
fi
} #打印结束符
print_end()
{
printlog "<<<<<<<<<<<<<<<<<<<<<<END<<<<<<<<<<<<<<<<<<<<<<<<<<"

}
printlog "<<<<<<<<<<<<<<<<<<<<<<Start<<<<<<<<<<<<<<<<<<<<<<<<<<"

#主要是下面的这句了,检查一下有没有rsync进程,如果有就直接提示有在运行,写到日志中,然后再等下一步循环了
ps -ef|grep 'rsync'|grep -v 'grep'|grep -v 'backrsync'
if [ $? -ne ]
then
printlog "start process..."
printlog "$NOWTIME: crontab start"
    checkmaildir="/umaildataback/backup"
    if [ -d ${checkmaildir} ];then
        echo "yes"
        /usr/bin/rsync -rav /home/mailbox /umaildataback/backup/
/usr/bin/rsync -rav /usr/local/mail/data/mailbox /mailbackmailbox/
/usr/bin/rsync -rav /usr/local/mail/data/backup/ /mailbackmailbox/mysqlback/
    else
        printlog 1 "No /umaildataback/backup"
    fi
printlog "Success Rsync"
else
printlog "runing...."
printlog "$NOWTIME: running... start"
fi
print_end

3,设置完了之后,再重启一下cron服务,就可以等输出了。</etc/init.d/crond restart>

rsync 定时备份<crontab+backrsync.sh> 简陋版的更多相关文章

  1. 【shell脚本】定时备份日志===logBackup.sh

    定时备份日志 设置执行权限 [root@VM_0_10_centos shellScript]# chmod a+x logBackup,sh 脚本内容 [root@VM_0_10_centos sh ...

  2. 【shell脚本】定时备份数据库===dbbackup.sh

    定时备份数据库是很有必要的 一.脚本内容 [root@localhost dbbackup]# cat dbbackup.sh #!/bin/bash #备份数据库 mysqldump -uroot ...

  3. 使用shell程序备份crontab中的.sh脚本文件

    需求 线上环境有一些定时脚本(用crontab -l可查看当前用户的),有时我们可能会改这些定时任务的脚本内容.为避免改错无后悔药,需用shell实现一个程序,定时备份crontab中的.sh脚本文件 ...

  4. linux_rsync定时备份

    在linux系统中,需要注意空格使用,有着整体性原则,并且注意大小写问题 Rsync数据同步工具 开源.快速.多功能.可实现全量和增量的本地或远程 具有本地和远程两台主机之间数据快速同步镜像.远程备份 ...

  5. MySQL数据库的定时备份

    1. 创建shell脚本 vim backupdb.sh 创建脚本内容如下: #!/bin/sh db_user="root" db_passwd=" db_name=& ...

  6. 定时备份windows机器上的文件到linux服务器上的操作梳理(rsync)

    由于需要对网络设备做备份,备份文件是放到windows机器上的.现在需要将备份数据同步到linux备份机器上,想到的方案有三种: 1)将windows的备份目录共享出来,然后在linux服务器上进行挂 ...

  7. 搭建企业级全网数据定时备份方案[cron + rsync]

    1.1.1. 服务端的配置[192.168.25.141] Rsync的端口是:873 man rsyncd.conf 查看帮助 Rsync是Redhat默认自带的,这里只是做了rsync服务器端的后 ...

  8. Linux下使用crontab定时备份日志

    上周学习了Linux,其中有使用crontab定时备份日志的内容,现把主要步骤记录如下: 首先需要备份的日志的源目录位于/opt/lampp/logs/access_log 备份到/tmp/logs下 ...

  9. linux下使用crontab定时备份MYSQL数据库的方法:

    摘要 linux下使用crontab定时备份MYSQL数据库的方法: 只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: ------------------------ ...

随机推荐

  1. Maya中提交Nuke工程到deadline中的方法

    在之前的一篇文中介绍了在maya中生成nuke工程脚本的方法,后来部门负责人希望更简单一些,能在那个功能面板里提交deadline农场渲染更好,这样就不用打开nuke手动提交了,省去了在两个软件直接来 ...

  2. [转][C#]Linq 的扩展方法

    public static class LinqEx { public static IEnumerable<TResult> LeftExcludingJoin<TSource, ...

  3. C++Primer第五版——习题答案详解(九)

    习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第10章 泛型算法 练习10.1 #include<iostream> #i ...

  4. 如何判断ACCESS数据库有无密码

    因为没有密码的数据库即使加上密码选项连接也不报错,所以如果通过连接来判读就无法识别无密码的数据库. 通过设置密码可以来测试数据库是否有密码,这是由于修改数据库密码的前提是数据库必须先有密码才行,如果数 ...

  5. SyntaxError: 'ascii' codec can't decode byte 0xe4 in position 7: ordinal not in range(128)

    问题描述: SyntaxError: 'ascii' codec can't decode byte 0xe4 in position 7: ordinal not in range(128) 解决方 ...

  6. Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication

    Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication Overview Galera Cluster 由 Coders ...

  7. 从神经网络到卷积神经网络(CNN)

    我们知道神经网络的结构是这样的: 那卷积神经网络跟它是什么关系呢?其实卷积神经网络依旧是层级网络,只是层的功能和形式做了变化,可以说是传统神经网络的一个改进.比如下图中就多了许多传统神经网络没有的层次 ...

  8. Reachability实时监控网络变化

    Reachability是一种实时观察网络发生变化控件,如当你的手机处于WiFi情况下,他就会检测环境,当处于GPS的情况下改变环境,当处于无网络的情况下又是一种环境.下面我们看下关于Reachabi ...

  9. nodejs+mocha+supertest+chai进行测试(only demo)

    1.nodejs安装成功 (上一篇:brew install nodejs) 2.mocha安装成功 npm install -g mocha 解释: -g代表global,全局的意思.此处mocha ...

  10. 性能测试day04_性能监控

    好了,今天接着来学习性能,在今天开始前,我今天在网上又看到了理发师经典模型,这里稍微提一下,详情可以百度哈,下面这张图是网上找到的经典场景性能相关的图,大致说明下: 这张图中展示的是1个标准的软件性能 ...