【问题标题】:Mysqldump backupt o remote server using ftp commandMysqldump 使用 ftp 命令备份远程服务器
【发布时间】:2012-07-30 14:06:38
【问题描述】:

如何在单个命令行中使用 ftp 协议和 ftp 命令将备份传输到远程服务器?

我的mysql转储命令

mysqldump -u _admin -p'pass&word' _maindb --add-drop-table --ignore-table=_maindb.emailstatstics > backup$(date '+%d_%m_%y_%H_%M').sql

和 ftp 一样:

ftp 64.xx.xx.xx 
myUserName
myPassword
put myMysqlBackup.sql

我需要在 directadmin 的 cronjobs 中执行此命令

【问题讨论】:

    标签: mysql linux ftp centos


    【解决方案1】:

    这将上传文件。您可以将这两行放入 shell 脚本并使其可执行,从 crontab 中使用它应该没有问题。只需确保使用输出文件的绝对路径即可。

    ftp -u ftp://myUserName:myPassword@64.xx.xx.xx myMysqlBackup.sql
    

    【讨论】:

    • 我需要在备份完成后转移它。如何在shell中编写?我是 linux 命令的初学者
    • 只需将这两行放在一个带有.sh 扩展名的文件中,并在顶部添加#!/bin/sh 作为单独的行。这告诉加载器使用sh shell 来运行你的脚本。然后你只需要用chmod +x /path/to/script.sh标记为可执行文件。
    • 抱歉,注意到您提到了 DirectAdmin。如果您将此脚本放在用户的主目录中(Web 根目录之外 - 这很重要),那么您应该能够将脚本的完整路径指定为 DirectAdmin 中的“命令”。
    • 您的 ftp 命令无法按我的需要工作,但您创建 shell 的建议很有帮助。
    【解决方案2】:

    大概:

    FILENAME=backup$(date '+%d%m_%y_%H_%M').sql ; mysqldump -u _admin -p'pass&word' _maindb --add-drop-table --ignore-table=maindb.emailstatstics > $FILENAME ; scp $FILENAME USERNAME:PASSWORD@64.xx.xx.xx/.
    

    【讨论】:

    • 它对我不起作用,ftp 64.xx.xx.xx myUserName myPassword put $FILENAME 没有做任何事情,我给这个消息usage: ftp host-name [port]
    • 啊..我认为您在问题中编写的 ftp 命令是有效的。那我修改一下回复。
    【解决方案3】:

    试试这个:

    #/bin/bash
    archive=$(date +%Y-%m-%d-%H-%M).gz
    mysqldump --all-databases | gzip -9 >  $archive
    HOST=backupserver
    USER=user
    PASS=password
    ftp -inv $HOST << EOF
    user $USER $PASS
    put $archive
    bye
    EOF
    rm -f archive
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多