精华内容
下载资源
问答
  • 我会尽力解释我的问题。我有一个窗体,并在该窗体中有一个“选择状态”选项:Select a ...然后它会从相关部分收集相关信息,并将其提交给我的电子邮件地址以及表单信息(名称,电子邮件等)的其余部分...

    我会尽力解释我的问题。我有一个窗体,并在该窗体中有一个“选择状态”选项:

    Select a State

    Alabama

    Alaska

    Arizona

    Arkansas

    etc.....

    所以一个例子是:客户填写表格并选择阿拉巴马州作为州。然后他们提交表格,并将表格连接到数据库,在数据库中查看阿拉巴马州(AL)。然后它会从相关部分收集相关信息,并将其提交给我的电子邮件地址以及表单信息(名称,电子邮件等)的其余部分。它还需要从阿拉巴马州随机选择一个IP地址,因为在数据库中我有多次阿拉巴马州(AL),所以它只是选择阿拉巴马州的所有IP地址

    +-------+---------------+

    | state | ip |

    +-------+---------------+

    | AL | 67.100.244.74 |

    | AK | 68.20.131.135 |

    | AZ | 64.134.225.33 |

    +-------+---------------+感谢这个论坛上的一些人以及另外一个人,我设法将一些php代码放在一起给你看。我已经将这个代码添加到它自己的PHP文件中,从html表单中分离出来

    // visit http://php.net/pdo for more details

    // start error handling

    try

    {

    // connect

    $pdo = new PDO('mysql:host=localhost;dbname=name', 'dbuser', 'pass');

    // enable error handling through exceptions

    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // create safe query

    $query = $pdo->prepare("SELECT ip FROM vincer WHERE state = ? ORDER BY rand() LIMIT 1");

    // pass data & execute query (since the data are of string type

    // and therefore can be passed in this lazy way)

    $query->execute(array($_POST['State']));

    // get value

    $ip = $query->fetchColumn();

    // print out the IP address using $ip

    }

    catch (Exception $e)

    {

    echo "sorry, there was an error.";

    mail("email@gmail.com", "database error", $e->getMessage(), "From: email@gmail.com");

    }

    ?>接下来我将PHP文件名添加到表单的帖子部分,如下面的代码

    好吧,现在当我去测试它的一切工作,我得到没有错误,但我没有收到电子邮件。我检查了垃圾邮件,但它不在那里。

    所以,当我没有收到电子邮件,我想也许我需要某种形式的PHP电子邮件。所以我将以上代码添加到了下面的代码中

    if(isset($_POST['email'])) {

    // EDIT THE 2 LINES BELOW AS REQUIRED

    $email_to = "1stoptutorials@gmail.com";

    $email_subject = "This is a test";

    function died($error) {

    // your error code can go here

    echo "We are very sorry, but there were error(s) found with the form you submitted. ";

    echo "These errors appear below.
    ";

    echo $error."
    ";

    echo "Please go back and fix these errors.
    ";

    die();

    }

    // validation expected data exists

    if(!isset($_POST['first_name']) ||

    !isset($_POST['last_name']) ||

    !isset($_POST['email']) ||

    !isset($_POST['State']) ||

    !isset($_POST['comments'])) {

    died('We are sorry, but there appears to be a problem with the form you submitted.');

    }

    $first_name = $_POST['first_name']; // required

    $last_name = $_POST['last_name']; // required

    $email_from = $_POST['email']; // required

    $state = $_POST['State']; // not required

    $comments = $_POST['comments']; // required

    $error_message = "";

    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';

    if(!preg_match($email_exp,$email_from)) {

    $error_message .= 'The Email Address you entered does not appear to be valid.
    ';

    }

    $string_exp = "/^[A-Za-z .'-]+$/";

    if(!preg_match($string_exp,$first_name)) {

    $error_message .= 'The First Name you entered does not appear to be valid.
    ';

    }

    if(!preg_match($string_exp,$last_name)) {

    $error_message .= 'The Last Name you entered does not appear to be valid.
    ';

    }

    if(strlen($comments) < 2) {

    $error_message .= 'The Comments you entered do not appear to be valid.
    ';

    }

    if(strlen($error_message) > 0) {

    died($error_message);

    }

    $email_message = "Form details below.\n\n";

    function clean_string($string) {

    $bad = array("content-type","bcc:","to:","cc:","href");

    return str_replace($bad,"",$string);

    }

    $email_message .= "First Name: ".clean_string($first_name)."\n";

    $email_message .= "Last Name: ".clean_string($last_name)."\n";

    $email_message .= "Email: ".clean_string($email_from)."\n";

    $email_message .= "State: ".clean_string($state)."\n";

    $email_message .= "Comments: ".clean_string($comments)."\n";

    // create email headers

    $headers = 'From: '.$email_from."\r\n".

    'Reply-To: '.$email_from."\r\n" .

    'X-Mailer: PHP/' . phpversion();

    if (!mail($email_to, $email_subject, $email_message, $headers))

    {

    echo "failed to send message";

    }

    ?>现在,当我发送电子邮件时,我实际上收到了电子邮件,但状态部分不正确。这是我收到的电子邮件

    First Name: afdf

    Last Name: sfgsdf

    Email: sd@fd.com

    State: AZ

    Comments: ali你可以看到它正在拉两个字母的状态,但我希望它从我的数据库中的IP表中获取AZ的IP号码。这就是我想要的样子

    First Name: afdf

    Last Name: sfgsdf

    Email: sd@fd.com

    State: 64.134.225.33

    Comments: ali如果任何人都可以看到我缺少的东西,为什么这不是从IP表中抓取一个随机IP地址,这将是非常感谢

    感谢大家

    阿里

    展开全文
  • 本文实例讲述了Python实现的查询mysql数据库并通过邮件发送信息功能。分享给大家供大家参考,具体如下:这里使用Python查询mysql数据库,并通过邮件发送宕机信息。Python代码如下:#-*- coding: UTF-8 -*-#!/usr/bin...

    本文实例讲述了Python实现的查询mysql数据库并通过邮件发送信息功能。分享给大家供大家参考,具体如下:

    这里使用Python查询mysql数据库,并通过邮件发送宕机信息。

    Python代码如下:

    #-*- coding: UTF-8 -*-

    #!/usr/bin/env python

    '''''

    author:qlzhong

    Created on 2015-6-29

    征途宕机日志统计汇总

    '''

    import MySQLdb

    import time

    import datetime

    import smtplib

    from email.mime.text import MIMEText

    mailto_list=["mail@mail.com"]

    #mailto_list=["zhongqilong@ztgame.com"]

    mail_host="smtp.qq.com" #设置服务器

    mail_user="" #用户名

    mail_pass="" #口令

    mail_postfix="" #发件箱的后缀

    def send_mail(to_list,sub,content):

    me="hello"+""

    msg = MIMEText(content,_subtype='plain',_charset='utf-8')

    msg['Subject'] = sub

    msg['From'] = me

    msg['To'] = ";".join(to_list)

    try:

    server = smtplib.SMTP()

    server.connect(mail_host)

    server.login(mail_user,mail_pass)

    server.sendmail(me, to_list, msg.as_string())

    server.close()

    return True

    except Exception, e:

    print str(e)

    return False

    class MySQLHelper:

    #配置数据库信息并连接

    def __init__(self,host="****",user="****",password="****",port=3306,charset="utf8"):

    self.host=host

    self.user=user

    self.password=password

    self.port=port

    self.charset=charset

    try:

    self.conn=MySQLdb.connect(host=self.host,user=self.user,passwd=self.password,port=self.port)

    self.conn.set_character_set(self.charset)

    self.cur=self.conn.cursor()

    print("==================connect success====================")

    except MySQLdb.Error as e:

    print("Mysql Error %d: %s" % (e.args[0], e.args[1]))

    #取出需要统计的数据库名称

    def db_name(self):

    un_db_name = ['information_schema','cz','ecshop','edutone','gz','mysql','newparent','parent','performance_schema','test','xx','yyhd']

    name = []

    try:

    self.cur.execute('show databases')

    for row in self.cur.fetchall():

    for i in row:

    if i not in un_db_name:

    name.append(i)

    return name

    except MySQLdb.Error as e:

    print("Mysql Error %d: %s" % (e.args[0], e.args[1]))

    #指定查询的数据库名称

    def selectDb(self,db):

    try:

    self.conn.select_db(db)

    except MySQLdb.Error as e:

    print("Mysql Error %d: %s" % (e.args[0], e.args[1]))

    #使用该语句来直接查询昨天和今天的差异

    def monion_today_yesddiff(self, today, yestoday):

    try:

    strresult = ""

    strsql = 'SELECT address, charversion, sum(today) as today, sum(yesterday) as yesterday '

    strsql += 'FROM (SELECT address, "" as today, tmp as yesterday, charversion FROM ( SELECT count(*) As tmp, address, charversion From `' + yestoday

    strsql += '` WHERE charversion like \'1.0.0.3%\' GROUP BY address) As TEST WHERE tmp>=50 '

    strsql += ' union all '

    strsql += 'SELECT address, tmp as today, "" as yesterday, charversion FROM (SELECT count(*) As tmp, address, charversion From `'

    strsql += today

    strsql += '` WHERE charversion like \'1.0.0.3%\' GROUP BY address) As TEST WHERE tmp>=50 ) As Diff GROUP BY address, charversion'

    print(strsql + "\n")

    self.cur.execute(strsql)

    name_list = [tuple[0] for tuple in self.cur.description]

    strresult += str(name_list) + "\n"

    # for row in self.cur.fetchall():

    # return row

    s = self.cur.fetchall()

    todaynum = 0

    yestodaynum = 0

    for col in s:

    strresult += str(col[0]) + " " + str(col[1]) + " " + str(col[2]) + " " + str(col[3]) + "\n"

    todaynum += int(col[2])

    yestodaynum += int(col[3])

    strresult += "今日宕机总数:" + str(todaynum) + " 昨日宕机总数:" + str(yestodaynum) + " 同昨日相比增加: " + str(todaynum - yestodaynum) + "\n"

    return strresult

    except MySQLdb.Error as e:

    print("Mysql Error:%s\n" %(e))

    def close(self):

    self.cur.close()

    self.conn.close()

    todayrang = 0;

    yestodayrang = 0;

    #按照范围查询

    def monion_rang_today_yesddiff(self, today, yestoday, num1, num2):

    try:

    strresult = ""

    strsql = 'SELECT sum(today) as today, sum(yesterday) as yesterday FROM (SELECT "" as today, tmp as yesterday FROM ( SELECT count(*) As tmp From `' + yestoday

    strsql += '` WHERE charversion like \'1.0.0.3%\' GROUP BY address) As TEST WHERE tmp=' + str(num1) + ' union all '

    strsql += 'SELECT tmp as today, "" as yesterday FROM (SELECT count(*) As tmp From `' + today + '` WHERE charversion like \'1.0.0.3%\' GROUP BY address) As TEST WHERE tmp=' + str(num1) + ' ) As Diff'

    print(strsql + "\n")

    self.cur.execute(strsql)

    name_list = [tuple[0] for tuple in self.cur.description]

    #strresult += str(name_list) + "\n"

    # for row in self.cur.fetchall():

    # return row

    s = self.cur.fetchall()

    todaynum = 0

    yestodaynum = 0

    for col in s:

    strresult += str(num1) + " <= tmp < " + str(num2) + " " + str(col[0]) + " " + str(col[1]) + "\n"

    self.todayrang += int(col[0])

    self.yestodayrang += int(col[1])

    return strresult

    except MySQLdb.Error as e:

    print("Mysql Error:%s\n" %(e))

    def close(self):

    self.cur.close()

    self.conn.close()

    #宕机数地址50以下最多的版本

    def monion_rang_today_diff(self, today, num):

    try:

    strresult = ""

    strsql = 'SELECT charversion, sum(today) as today FROM (SELECT tmp as today, "" as yesterday, charversion FROM (SELECT count(*) As tmp, charversion From `' + today

    strsql += '` WHERE charversion like \'1.0.0.3%\' GROUP BY address) As TEST WHERE tmp< ' + str(num) + ') As Diff GROUP BY charversion'

    print(strsql + "\n")

    self.cur.execute(strsql)

    name_list = [tuple[0] for tuple in self.cur.description]

    #strresult += str(name_list) + "\n"

    # for row in self.cur.fetchall():

    # return row

    s = self.cur.fetchall()

    for col in s:

    strresult += str(col[0]) + " " + str(col[1]) + "\n"

    return strresult

    except MySQLdb.Error as e:

    print("Mysql Error:%s\n" %(e))

    def close(self):

    self.cur.close()

    self.conn.close()

    if __name__ == '__main__':

    textbody=""

    textbody = textbody + "征途宕机日志查询汇总" + "\n"

    #时间

    timenow = datetime.datetime.now()

    textbody = textbody + "时间:" + timenow.strftime('%Y-%m-%d %H:%M:%S') + "\n"

    #连接

    ipadress="192.168.100.38"

    port=3306

    dbHelper = MySQLHelper(ipadress, "gameerror", "errorpasswd", port)

    textbody = textbody + "服务器地址:" + ipadress + ":" + str(port) + "\n"

    dbHelper.selectDb("GAMEERROR")

    #操作

    dbname = dbHelper.db_name()

    textbody = textbody + "数据库:" + str(dbname[0]) + "\n"

    time1 = timenow + datetime.timedelta(days = -1)

    time2 = timenow + datetime.timedelta(days = -2)

    strtime1 = time1.strftime('%Y%m%d')

    tabletoday = "ErrorDump" + strtime1

    strtime2 = time2.strftime('%Y%m%d')

    tableyestoday = "ErrorDump" + strtime2

    textbody = textbody + "table name: today: " + tabletoday + " yestoday: " + tableyestoday + "\n"

    textbody = textbody + "\n昨天和今天的差异 宕机地址 版本号 今天宕机次数 昨天宕机次数" + "\n"

    textbody = textbody + str(dbHelper.monion_today_yesddiff(tabletoday, tableyestoday)) + "\n"

    textbody = textbody + "50以下地址(tmp代表某个宕机地址的个数) 今天 昨天:" + "\n"

    textbody = textbody + str(dbHelper.monion_rang_today_yesddiff(tabletoday, tableyestoday, 30, 50))

    textbody = textbody + str(dbHelper.monion_rang_today_yesddiff(tabletoday, tableyestoday, 10, 30))

    textbody = textbody + str(dbHelper.monion_rang_today_yesddiff(tabletoday, tableyestoday, 0, 10))

    textbody = textbody + "50以上地址总和" + " 今天: " + str(dbHelper.todayrang) + " 昨天: " + str(dbHelper.yestodayrang) + " 今天比昨天增加: " + str(dbHelper.todayrang - dbHelper.yestodayrang) + "\n"

    num=50

    textbody = textbody + "\n宕机数地址" + str(num) + "以下最多的版本 版本号 次数" + "\n"

    textbody = textbody + str(dbHelper.monion_rang_today_diff(tabletoday, num))

    file_object = open('ztdumptip.txt')

    try:

    all_the_text = file_object.read()

    finally:

    file_object.close()

    textbody += all_the_text

    print(textbody)

    if send_mail(mailto_list,"征途客户端宕机日志统计",textbody):

    print "发送成功"

    else:

    print "发送失败"

    dbHelper.close()

    希望本文所述对大家Python程序设计有所帮助。

    展开全文
  • 数据库备份在现代计算机高速发展的今日变得...(一)使用Navicat自动备份数据库:1,打开navicat客户端,连上mysql后,双击左边你想要备份的数据库。点击“计划”,再点击“新建批处理作业”具体如下图。2,双击上面的...

    数据库备份在现代计算机高速发展的今日变得日益重要,程序员往往因为不重视而忽略备份数据,导致数据丢失,造成非常严重的后果。定时备份无疑是解决备份的最好的途径,本文主要使用Navicat来自动备份数据库和创建相关的计划任务。

    (一)使用Navicat自动备份数据库:

    1,打开navicat客户端,连上mysql后,双击左边你想要备份的数据库。点击“计划”,再点击“新建批处理作业”具体如下图。

    da089db3363772896d33ac62c3420a0d.png

    2,双击上面的可用任务,它就会到下面的列表里去,也代表你选择了这个任务

    c6cf9ce6474359510ef98a99c5060be5.png

    3,点击保存,弹出个命名对话框,给这个任务取个名字,点击“确定”

    26eb5e2b7d8111b68a88b17713aeb89c.png

    4,点击“设置计划任务”,点击计划选项卡,定义了每天凌晨四点左右备份还可以创建多个计划任务的时间等等,确定后输入本地管理员的用户名和密码,自动备份设置完成。

    2467f8c05ebcfd830decc66cf6517edc.png

    a511c9a58dcd740a229cf843ef698548.png

    5,给自己的邮箱发送备份信息的相关配置

    9ccdfb7fafe6faa4810edda0f1b208a7.png

    6,点击开始,及刚才创建的数据库的备份离开执行备份操作。

    d7797fe7e48376f3aa701b583f8eda20.png

    至此,使用navicat自动备份数据库的方法完成。

    (二),使用navicat创建报表并自动发送附件到指定的邮箱。

    1,选中相应的数据库,选中报表,新建报表。

    64efdca03ab94038b2e79c2a7f57870f.png

    2,在新建的报表中依次选择:数据--文件--新建--查询设计器--SQL--单击空白处“编辑SQL”把查询语句粘贴到该sql里,图一,图二,图三,图四。

    b083326f1e074b04c56638c97c1621c6.png

    图一

    845e356134c5bb1b31d0e7b252d5f4cb.png

    图二

    abd651acfb2b2511a023eb078d6f1256.png

    图三

    a2e4884f0f75154e9edd079d9f512d2b.png

    图四

    3,设计报表,点击设计,把数据查询出来的列拉倒最上边,见下图

    211bb1dd88aa7c8525d6683f72770b9b.png

    4,预览报表,点击预览即可并调整相应的尺寸达到自己的满意并保持(Ctrl + S)。

    f5a03424be7049a1dd5b52a5e3e001f3.png

    5,新建schedule:计划--新建批处理作业,具体见下表。

    f7334162055e3bd0b66da49c0a33daec.png

    6,进入高级选项卡进行相关设置,见下图。

    36de7d2fbf7dfdb352ee90c38cfaa059.png

    7,打开邮箱收到相关的信息,至此用navicat创建报表并发送邮件完成,希望对你有所帮助。

    8a73d0ece081198a866f59c025d01e61.png

    展开全文
  • 一 前提 系统环境 :centos6.1 脚本作用 :备份指定服务器上的指定数据库,并通过scp传送到另一台备份主机,然后发送备份是否成功邮件到指定邮箱 思路 :首先在备份脚本中把备份报告导出为一个db_backup.log文件,...

    一 前提 系统环境 :centos6.1 脚本作用 :备份指定服务器上的指定数据库,并通过scp传送到另一台备份主机,然后发送备份是否成功邮件到指定邮箱 思路 :首先在备份脚本中把备份报告导出为一个db_backup.log文件,然后邮件脚本会把这个log内容作为邮件内容发

    一 前提

    系统环境:centos6.1

    脚本作用:备份指定服务器上的指定数据库,并通过scp传送到另一台备份主机,然后发送备份是否成功邮件到指定邮箱

    思路:首先在备份脚本中把备份报告导出为一个db_backup.log文件,然后邮件脚本会把这个log内容作为邮件内容发送给指定用户,也就实现了邮件通知

    说明:如果需要备份到远程主机,需要首先做好ssh密钥认证,scp要使用到

    二 备份脚本

    备份脚本用法:如果需要备份某个数据库,在脚本后面添加一条备份命令,像下面这样

    backup_db 10.90.5.50 dbname mysql 123456 innodb

    函数名 mysql所在IP 所要备份的数据库名 连接数据库用户名 密码 数据库引擎类型#!/bin/bash

    #name:backup_db.sh

    #Purpose: backup mysql database

    #Author: xxx

    #Date: 2014-08-26

    #useage:backup_db IP databasename user password dbtype

    #example:backup_db 10.90.5.50 dbname mysql 123456 innodb

    #备份时间

    DATE=`date -d"today" +%Y%m%d_%H%M%S`

    #前一个时间

    DATE2=`date -d"1 month ago" +%Y%m%d_%H%M%S`

    #备份目录

    HOMEDIR=/data/dbdata_backup

    MYSQLDUMP='/usr/local/mysql/bin/mysqldump'

    #删除上一次备份报告

    rm -f $HOMEDIR/db_backup.log

    #################################################################function############################################################################

    #backup function

    backup_db ()

    {

    if [ $# -ne 5 ];then

    echo "Usage: backupdb IP dbname user password dbtype"

    echo "Please try again"

    exit 1

    fi

    IP=$1

    DBNAME=$2

    USER=$3

    PASSWORD=$4

    DBTYPE=$5

    echo "--------------------------start backup $IP $DBNAME db-------------------------------------" >> $HOMEDIR/db_backup.log

    echo "start date: `date +%Y%m%d_%H%M%S`" >> $HOMEDIR/db_backup.log

    if [ $DBTYPE = "innodb" ];then

    $MYSQLDUMP -u$USER -p$PASSWORD -h$IP --single-transaction --flush-logs --routines --events --master-data=2 "$DBNAME" > $HOMEDIR/$DBNAME/${DBNAME}_$DATE.sql

    if [ $? -ne 0 ];then

    echo "$IP $DBNAME $DBTYPE db backup is not success ,please check it out!" >> $HOMEDIR/db_backup.log

    else

    echo "$IP $DBNAME $DBTYPE db backup is success!" >> $HOMEDIR/db_backup.log

    fi

    else

    $MYSQLDUMP -u $USER -p$PASSWORD -h$IP -l --flush-logs --routines --events --master-data=2 "$DBNAME" > $HOMEDIR/$DBNAME/${DBNAME}_$DATE.sql

    if [ $? -ne 0 ];then

    echo "$IP $DBNAME $DBTYPE db backup is not success ,please check it out!" >> $HOMEDIR/db_backup.log

    else

    echo "$IP $DBNAME $DBTYPE db backup is success!" >> $HOMEDIR/db_backup.log

    fi

    fi

    echo "End date: `date +%Y%m%d_%H%M%S`" >> $HOMEDIR/db_backup.log

    gzip $HOMEDIR/$DBNAME/${DBNAME}_$DATE.sql

    SIZE=`du -sh $HOMEDIR/$DBNAME/${DBNAME}_$DATE.sql.gz | awk '{print $1}'`

    echo "the file size is: $SIZE" >> $HOMEDIR/db_backup.log

    echo "--------------------------end backup $IP $DBNAME db-------------------------------------" >> $HOMEDIR/db_backup.log

    #delete the backup files which were create two month ago

    rm -f $HOMEDIR/$DBNAME/${DBNAME}_$DATE2.sql.gz

    }

    #scp function : scp the backup file to another server as different place backup

    scp_function ()

    {

    if [ $# -ne 1 ];then

    echo "Usage: scp_function dbname"

    echo "Please try again"

    exit 1

    fi

    DBNAME=$1

    scp -P52814 -i /home/lj/.ssh/id_rsa $HOMEDIR/$DBNAME/${DBNAME}_$DATE.sql.gz lj@10.90.5.50:/data/dbbackup/

    if [ $? -ne 0 ];then

    echo "$DBNAME db backup data transfer is not success ,please check it out!" >> $HOMEDIR/db_backup.log

    else

    echo "$DBNAME db backup data transfer is success!" >> $HOMEDIR/db_backup.log

    fi

    }

    ##########################################################################function##################################################################

    #使用perl命令执行邮件脚本,以发送备份报告,其中的sendmail.pl为下面发邮件脚本

    perl /home/scripts/sendmail.pl

    三 发送邮件脚本

    脚本中需要安装插件,请确认你的系统中已安装Net::SMTP_auth;Text::Iconv;MIME::Base64;Data::Dumper#!/usr/bin/perl

    #Author: xxx

    #name:sendamil.pl

    #Purpose: Send file comment email to people

    #Date: 2014-08-26

    #请确认下面插件已安装

    use strict;

    use Net::SMTP_auth;

    use Text::Iconv;

    use MIME::Base64;

    use Data::Dumper;

    #邮件服务器地址

    my $mailhost = 'mail.qq.com';

    #邮件从哪个邮箱发出(from)

    my $mailfrom = 'monitor@qq.com';

    #邮件需要发给谁

    my @mail_account = ('xxx@qq.com');

    #邮件发送方邮箱

    my $mailuser = 'monitor@qq.com';

    #发送方邮箱密码

    my $mailpasswd = 'jiankong';

    #db_backup.log中的内容会作为邮件内容发送,db_backup.log为备份脚本所导出的此次备份报告

    my $filename= '/data/dbdata_backup/db_backup.log';

    #邮件主题

    my $subject= 'dazhima_db_backup';

    open(MYFILE,"$filename") || die "$!";

    my $text;

    while (){

    $text .= $_."

    ";

    }

    close(MYFILE);

    &SendMail($text,$subject);

    sub SendMail() {

    my $text = $_[0];

    my $subject = $_[1];

    my $smtp = Net::SMTP_auth->new( 'mail.medees.com', Timeout => 60, Debug => 0, Hello => 'medees.com' ) or die "Error.\n";

    $smtp->auth( 'LOGIN', $mailuser, $mailpasswd );

    foreach my $mailto (@mail_account) {

    $smtp->mail($mailfrom);

    $smtp->to($mailto);

    $smtp->data();

    $smtp->datasend("Content-Type:text/html;charset=utf-8\n");

    $smtp->datasend("Content-Transfer-Encoding:base64\n");

    $smtp->datasend( "From:=?utf-8?B?" . encode_base64( 'JianKong', '' ) . "?= \n" );

    $smtp->datasend( "To:=?utf-8?B?" . encode_base64( 'JianKong', '' ) . "?= \n" );

    $smtp->datasend( "Subject:=?utf-8?B?" . encode_base64( $subject, '' ) . "?=\n\n" );

    $smtp->datasend();

    $smtp->datasend( encode_base64( $text, '' ) . " \n" );

    $smtp->dataend();

    }

    $smtp->quit;

    }

    四 使用

    添加一条crontab记录

    0 2 * * * /var/script/db_backup.sh

    在每天的2点执行备份脚本

    f68f2add0b68e4f9810432fce46917b7.png

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!

    展开全文
  • 邮件发送 一、数据库备份 vim /sqlbackup/mysql_backup.sh #!/bin/sh ###定义变量#### date=`date "+%Y-%m-%d"` ago10date=`date +%Y-%m-%d --date="-10 day"` backuser=root db_host=localhost backupdir=/sql...
  • postfix+mysql发送邮件服务发布时间:2020-05-23 16:17:00来源:51CTO阅读:196作者:三月下文主要给大家带来postfix+mysql发送邮件服务,希望这些内容能够带给大家实际用处,这也是我编辑postfix+mysql发送邮件服务...
  • 如果网站数据突然丢失 估计你会崩溃 这篇文章主要介绍 在Linux下每天自动备份Mysql数据库,并且自动发送到你指定的邮箱里,这样你再也不会为丢失数据烦恼啦。一、安装 postfix 并配置二、安装mutt并配置muttmutt,它...
  • 简介自己平常用的一个shell脚本,起自动备份mysql中所有数据库作用,在任务执行完成后,会记录日志和自动发送邮件到邮箱。配合crontab可以实现每天自动备份。代码backmysql.sh:#!/bin/bash#日期格式file=`date +%Y-%...
  • 一、先来看备份mysql数据库的命令mysqldump -u root --password=root --database abcDataBase > c:/abc_backup.sql二、写Python程序BackupsDB.py#!/usr/bin/python# -*- coding: UTF-8 -*-'''''zhouzhongqing备份...
  • python备份mysql数据库发送邮件#!/usr/bin/envpython#coding:utf-8#WritebyJIANGLEI.YU#UpdateOn2016-01-2420:26importosimporttimeimportsysimportdatetimeimportsmtplibimportstringfromstatimport*#Defin...
  • 首先写一个定时任务脚本: 第三行就是数据库备份命令,第四行...阿里云封闭25端口,所以不能通过默认的端口(25)发送邮箱服务,需要通过邮箱服务器的加密端口(465)来完成发送邮件的服务。配置流程如下: ①修...
  • I am using a MySQL database and PHP.My MySQL database contains the following records:Name Address Data email DateJoy Fortblair 10 my@gmail.comm 1/22/2009Bob Atlanta 1...
  • 1.简单了解数据库邮件的概念和使用的传输协议及系统体系:数据库邮件是从 SQL Server 数据库引擎中发送电子邮件的企业解决方案。通过使用数据库邮件数据库应用程序可以向用户发送电子邮件邮件中可以包含查询结果...
  • 在运营项目中难免会碰到备份数据库的操作, 因为数据库中存储着网站最核心最宝贵的数据,如果因为不可预测的原因导致数据损坏或丢失,对一个网站的打击是毁灭性的,一次又一次的教训提醒着我们一定要做好备份,但是...
  • 通过使用数据库邮件配置向导和sp_configure存储过程配置启用数据库邮件:注:服务器名称填写发送服务器的路径或者IP,电子邮件地址为寄件者地址配置好数据库邮件账户和配件文件后,使用SQL Mail XPs选项在此服务器上...
  • -p数据库密码 数据库名 > $path #发送邮件 #删除临时文件 echo "邮件内容" | mail -s $filename -a $path 邮箱 rm -f $path /usr/bin/mysqldump是完整的命令路径,如果你不知道命令的完整路径,可以使用whereis 命令...
  • 最近的项目,客户要求要把数据库每天做备份,并且发送的邮箱,在Linux下就不用说了,方便的很,可是,o(︶︿︶)o 唉!服务器是Windows的2003 。整吧!在网上找了点资料,东拼西凑的总算是鼓捣出来了。第一步,定时...
  • 你是否对获得MYSQL数据库命名与其设计规范 的实际操作感到十分头疼?如果是这样子的话,以下的文章将会给你相应的解决方案,以下的文章主要是介绍获得MYSQL数据库命名与其设计规范 的方案,以下就是相关内容的具体...
  • 如果你有一个数据库驱动的网站,你的 MySQL 信息是最有价值的,您甚至可以设置一个电子邮件帐户来接收这些备份。首先,如果您将脚本放置在一个非 Web 访问的文件夹中,并在其上运行每日 cron 自动定时作业,此脚本的...
  • 匿名用户1级2012-02-05 回答,先计算mysql数据库目录下的每个数据库大小,然后与容量限制进行比较,如果超过容量,则revoke该数据库的insert权限,让用户数据库不能再增长。脚本如下:###begin srcript --author pat....
  • 在Centos中使用Cron定时自动备份mysql数据库并通过Mutt发送到指定Gmail邮箱,利用Gmail垃圾邮件策略实现定时删除{ No.1 编写Shell 文件}// Path /root/eeBakcupShell/backup-email-mysql-data.sh#!/bin/shd=`date "+%...
  • MYSQL教程MySQL 数据库设计复习笔记及项目实战》要点:本文介绍了MYSQL教程MySQL 数据库设计复习笔记及项目实战,希望对您有用。如果有疑问,可以联系我们。作者:杨鑫奇MYSQL必读最近手头上有3个项目开动,其他2个...
  • MySQL数据库监控

    2021-01-18 18:11:19
    MySQL MTOP由PHP和Python开发,所以监控机需要安装PHP运行环境和Python环境。需要的核心包如下:1.MySQL 5.0及以上(用来存储监控系统采集的数据)2.Apache 2.2及以上 (WEB服务器运行服务器)3.PHP 5.3以上 (WEB界面)4....
  • python 关系型数据库链接使用--mysqlimport pymysql # 引用mysql模块# 创建连接,指定数据库的ip地址,账号、密码、端口号、要操作的数据库、字符集coon = pymysql.connect(host='118.24.3.40',user='jxz',password=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,204
精华内容 20,081
关键字:

mysql数据库发送邮件

mysql 订阅