顯示具有 shell script 標籤的文章。 顯示所有文章
顯示具有 shell script 標籤的文章。 顯示所有文章

2011年5月19日 星期四

[轉貼]過濾 log 資訊的 script

仲佑的網誌
http://yowlab.shps.kh.edu.tw/wordpress/?p=1294


檢查誰在亂踹:
1.grep 'login error' /var/log/openwebmail.log > auth_error.log
2.sed ' s/^.* (\[0-9]*\.[0-9]*.\[0-9]*\.[0-9]*\).*/\1/g 'auth_error.log > ip_list.txt
3.sort ip_list.txt > sort_ip_list.txt
4.uniq -c sort_ip_list.txt


檢查誰在寄信:
1.grep 'send message' /var/log/openwebmail.log.1 > send-mail.log
2.sed ' s/^.* (\[0-9]*\.[0-9]*.\[0-9]*\.[0-9]*) \ ( [a-zA-Z].*\ ) -send message .*/\1/g ' send-mail.log > send-list.log
3.sort sender-list.log > sort-sender.log
4.uniq -c sort-sender.log


http://www.ruanyifeng.com/blog/2012/01/a_bash_script_of_apache_log_analysis.html


反复查看手册,确认用法和合适的参数。下面就是我的日志分析脚本,虽然它还不是通用的,但是我相信里面用到的命令,足以满足一般的日志分析需求,同时也是很好的学习Bash的实例。如果下面的每一个命令你都知道,我觉得可以堪称熟练使用Bash了。
一、操作环境
在介绍脚本之前,先讲一下我的服务器环境。
我的网络服务器软件是Apache,它会对每一个http请求留下记录,就像下面这一条:
  203.218.148.99 - - [01/Feb/2011:00:02:09 +0800] "GET /blog/2009/11/an_autobiography_of_yang_xianyi.html HTTP/1.1" 200 84058 "http://www.ruanyifeng.com/blog/2009/11/freenomics.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13"
它的意思是2011年2月1日,IP地址为203.218.148.99的访问者,向服务器请求访问网址/blog/2009/11/an_autobiography_of_yang_xianyi.html。
当天所有的访问记录,组成一个日志。过去一年,一共生成了365个日志文件。它们存放在12个目录中,每一个目录表示一个月(2011-01、2011-02、......2011-12),里面的日志文件依次为www-01.log、www-02.log、......www-31.log(假定该月有31天)。
在不压缩的情况下,365个日志文件加起来,要占掉10GB空间。我的目标就是分析这10GB日志,最后得到一个如下形式的访问量排名:
  访问量 网址1
  访问量 网址2
  访问量 网址3
  ...... ......
二、为什么要用Bash
很多计算机语言,都可以用来完成这个任务。但是,如果只是简单的日志分析,我觉得Bash脚本是最合适的工具。
主要原因有两个:一是"开发快",Bash脚本是各种Linux命令的组合,只要知道这些命令怎么用,就可以写脚本,基本上不用学习新的语法,而且它不用编译,直接运行,可以边写边试,对开发非常友好。二是"功能强",Bash脚本的设计目的,就是为了处理输入和输出,尤其是单行的文本,所以非常合适处理日志文件,各种现成的参数加上管道机制,威力无穷。
前面已经说过,最终的脚本我只用了20多行,处理10GB的日志,20秒左右就得到了结果。考虑到排序的巨大计算量,这样的结果非常令人满意,充分证明了Bash的威力。
三、总体思路
我的总体处理思路是这样的:
  第一步,处理单个日志。统计每一天各篇文章的访问量。
  第二步,生成月度排名。将每一天的统计结果汇总,得到月度访问量。
  第三步,生成年度排名。将12个月的统计结果汇总,进行年度访问量的排序。
四、处理单个日志
以2011年1月1日的日志为例,它在目录2011-01之中,文件名是www-01.log,里面有10万条如下格式的记录:
  203.218.148.99 - - [01/Feb/2011:00:02:09 +0800] "GET /blog/2009/11/an_autobiography_of_yang_xianyi.html HTTP/1.1" 200 84058 "http://www.ruanyifeng.com/blog/2009/11/freenomics.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13"
处理这个日志,我只用了一行代码:
  awk '$9 == 200 {print $7}' www-01.log | grep -i '^/blog/2011/.*\.html$' | sort | uniq -c | sed 's/^ *//g' > www-01.log.result
它用管道连接了5个命令,每一个都很简单,我们依次来看:
(1) awk '$9 == 200 {print $7}' www-01.log
awk命令默认用空格,将每一行文本分割成若干个字段。仔细数一下,我们需要的只是第7个字段,即http请求的网址,{print $7}表示将第7个字段输出,结果就是:
  /blog/2009/11/an_autobiography_of_yang_xianyi.html
考虑到我们只统计成功的请求,因此再加一个限制条件,服务器的状态代码必须是200(表示成功),写成"$9 == 200",即第9个字段必须是200,否则不输出第7个字段。
更精细的统计,还应该区分网络蜘蛛和真实访问者,由于我想不出简单的分辨方法,这里只好忽略了。
(2)grep -i '^/blog/2011/.*\.html$'
在输出的所有记录的第7个字段之中,并不是每一条记录都需要统计的。根据我的文章的命名特点,它们的网址应该都以"/blog/2011/"开头,以".html"结尾。所以,我用一个正则表达式"^/blog/2011/.*\.html$",找出这些记录。参数i表示不区分大小写。
(3)sort
这时,所有需要统计的记录应该都列出来了,但是它们的次序是杂乱的。接着,使用sort命令,不过目的不是为了排序,而是把相同的网址排列在一起,为后面使用uniq命令创造条件。
(4)uniq -c
uniq的作用是过滤重复的记录,只保留一行。c参数的作用,是在每行的开头添加该记录的出现次数。处理之后的输出应该是这样的:
  32 /blog/2011/01/guidelines_for_english_translations_in_public_places.html
  32 /blog/2011/01/api_for_google_s_url_shortener.html
  30 /blog/2011/01/brief_history_of_arm.html
它表示以上三篇文章,在1月1日的日志中,分别有32条、32条、30条的访问记录(即访问次数)。
(5)sed 's/^ *//g' > www-01.log.result
上一步uniq命令添加的访问次数,是有前导空格的。也就是说,在上例的32、32、30之前有一连串空格,为了后续操作的方便,这里把前导空格删去。sed命令是一个处理行文本的编辑器,'s/^ *//g'是一个正则表达式(^和*之间有一个空格),表示将行首的连续空格替换为空(即删除)。接着,将排序结果重定向到文件www-01.result。单个日志分析就完成了。
五、月度汇总排名
经过上一步之后,1月份的31个日志文件,生成了31个对应的分析结果文件。为了汇总整个月的情况,必须把这31个结果文件合并。
(6)合并分析结果
  for i in www-*.log.result
  do
    cat $i >> log.result
  done
这是一个循环结构,把所有www-01.log.result形式的文件,都写进log.result文件。
然后,我用一行语句,计算月度排名。
  sort -k2 log.result | uniq -f1 --all-repeated=separate |./log.awk |sort -rn > final.log.result
这行语句由3个命令和1个awk脚本组成:
(7)sort -k2 log.result
由于是31个文件汇总,log.result文件里面的记录是无序的,必须用sort命令,将相同网址的记录归类在一起。但是此时,访问次数是第一个字段,网址是第二个字段,因此参数k2表示根据第二个字段进行排序。
(8)uniq -f1 --all-repeated=separate
uniq的作用是过滤重复的记录,参数f1表示忽略第一个字段(访问次数),只考虑后面的字段(网址);参数表示all-repeated=separate,表示过滤掉所有只出现一次的记录,保留所有重复的记录,并且每一组之间用一个空行分隔。这一步完成以后,输出结果变成如下的形式:
  617 /blog/2011/01/guidelines_for_english_translations_in_public_places.html
  455 /blog/2011/01/guidelines_for_english_translations_in_public_places.html
  223 /blog/2011/01/2010_my_blogging_summary.html
  253 /blog/2011/01/2010_my_blogging_summary.html
相同网址都归在一组,组间用空行分割。为了简洁,上面的例子每一组只包含两条记录,实际上每一组都包含31条记录(分别代表当月每天的访问次数)。
(9)log.awk脚本
为了将31天的访问次数加总,我动了很多脑筋。最后发现,唯一的方法就是用awk命令,而且必须另写一个awk脚本。
  #!/usr/bin/awk -f
  BEGIN {
    RS="" #将多行记录的分隔符定为一个空行
  }
  {
    sum=0 #定义一个表示总和的变量,初值为0
    for(i=1;i<=NF;i++){ #遍历所有字段
      if((i%2)!=0){ #判断是否为奇数字段
        sum += $i #如果是的话,累加这些字段的值
      }
    }
    print sum,$2 #输出总和,后面跟上对应的网址
  }
我已经对上面这个log.awk脚本加了详细注释。这里再说明几点:首先,默认情况下,awk将"\n"作为记录的分隔符,设置RS=""表示改为将空行作为分隔符,因此形成了一个多行记录;其次,NF是一个awk的内置变量,表示当前行的字段总数。由于输入文件之中,每一行都包含两个字段,第一个是访问数,第二个是网址,所以这里做一个条件判断,只要是奇数字段就累加,偶数字段则一律跳过。最后,每个记录输出一个累加值和网址,它们之间用空格分割。
(10)sort -rn > final.log.result
对awk脚本的处理结果进行排序,sort默认使用第一个字段,参数r表示逆序,从大往小排;参数n表示以数值形式排序,不以默认的字典形式排序,否则会出现10小于2的结果。排序结果重定向到final.log.result。至此,月度排名完成。
六、脚本文件
用一个脚本,包含上面两节所有的内容。
  #!/bin/bash
  if ls ./*.result &> /dev/null #判断当前目录中是否有后缀名为result的文件存在
  then
    rm *.result #如果有的话,删除这些文件
  fi
  touch log.result #创建一个空文件
  for i in www-*.log #遍历当前目录中所有log文件
  do
    echo $i ... #输出一行字,表示开始处理当前文件
    awk '$9 == 200 {print $7}' $i|grep -i '^/blog/2011/.*\.html$'|sort|uniq -c|sed 's/^ *//g' > $i.result #生成当前日志的处理结果
    cat $i.result >> log.result #将处理结果追加到log.result文件
    echo $i.result finished #输出一行字,表示结束处理当前文件
  done
  echo final.log.result ... #输出一行字,表示最终统计开始
  sort -k2 log.result | uniq -f1 --all-repeated=separate |./log.awk |sort -rn > final.log.result #生成最终的结果文件final.log.result
  echo final.log.result finished #输出一行字,表示最终统计结束
这就是月度排名的最终脚本。编写的时候,我假定这个脚本和log.awk脚本与日志文件在同一个目录中,而且这两个脚本都具有执行权限。
年度排名的处理与此类似,就不再赘述了。
=================================================================

2011年4月14日 星期四

apache log 的 IP 排序+統計

在分析 apache log 時最常用的就是 IP 排序+統計,如果三不五時都要把 webalizer 叫出來跑,實在是有點辛苦,所以我們家 J神 就提供了一個簡易的語法,非常精準好用。

cat access.log |awk ‘{print $1}’|sort|uniq -c|sort -rn|head -n 10

這樣子會排出前十名 hit 最高的 IP,結果就會像

2416 123.156.xx.212
601 122.122.xx.101
583 114.38.xx.214
565 218.168.xx.140
526 114.43.xx.250
525 114.41.xx.40
476 218.168.xx.72
449 115.43.xx.154
424 114.42.xx.172
389 218.169.xx.162

2010年9月1日 星期三

待練 shell,ssh

SSH 小技巧
http://cha.homeip.net/blog/2010/08/2623.html

最牛B的 Linux Shell 命令 系列连载
http://wowubuntu.com/linux_shell_1.html
http://wowubuntu.com/linux_shell_2.html
http://wowubuntu.com/linux_shell_3.html
http://wowubuntu.com/linux_shell_4.html

test ,練個script測 檔案權限...
http://hi.baidu.com/zheng918/blog/item/892bf9f28636cd1bb07ec5fc.html/cmtid/477efffa7aaa1ad3b58f3116
http://linux.vbird.org/linux_basic/0340bashshell-scripts.php#test

2010年4月21日 星期三

VM中用Crontab排程跑 ntpdate校時筆記

環境:CentOS5.5
方式:/etc/cron.hourly/ntpdate.sh
記錄檔:/var/log/cron ,及 mail 到 root …一到兩小時記錄一次 (!?)


環境:SLES10
方式:crontab -e,跑 /root/stdtime.sh
crontab -e 裡的 job
有錯會寄信到root
記錄檔:/var/log/messages

環境:SLES10
方式:/etc/cron.hourly/stdtime.sh
/etc/cron.hourly/stdtime.sh 中自訂 echo訊息做記錄....
/usr/sbin/ntpdate clock.stdtime.gov.tw
echo "update time hourly log $(date) " /root/ntpdate-hourly.log
記錄檔:mail 到 root 及自定的log


http://figaro.neo-info.net/?p=666

Cron 執行時通常都會透過 Mail 告訴使用者該排程的執行狀態,若是不想收到這些訊息時,則可以透過下列方式來完成:
1. 以該使用者身份登入後,執行 crontab -e
2. 在所有排程的最上端輸入一行描述
MAILTO=""
這樣便不會再收到相關的郵件訊息了



Host Power Management Causes Problems with Guest Timekeeping (Windows Hosts)

2010年2月2日 星期二

mysqldump 備份 MySQL[文摘]

mysqldump


FreeBSD下cron自动备份MySQL数据库的脚本
http://www.abc188.com/info/html/caozuoxitong/FreeBSD/20090513/127707.html

http://www.360doc.com/content/06/0829/09/11104_193248.shtml

在cpnael 利用 cron 定時 備份 mysql + html 文件
http://registerboy.pixnet.net/blog/post/22423003


http://forums.mysql.com/read.php?10,319298,319298#msg-319298

Crontab備份MySQL定時備份shell script自動刪除
http://www.dk101.com/Discuz/archiver/tid-161918.html

老鼠愛大米 2009-6-27 18:19

Crontab備份MySQL定時備份shell script自動刪除

MySQL 備份 shell script

這個是我日常用作備份 MySQL database 的 shell script,因為以前是直接將所有資料庫匯出成一個 sql 檔,當其中一個資料庫有問題時,因為沒問題的資料庫不想有改動,要復原資料很麻煩。今天改了一下,它會用 mysqldump 將所有資料庫匯出成獨立 sql 備份檔,然後用 gzip 壓縮成 .gz 檔案。程式會儲存 5 天的備份,當有新備份時,最舊的備份會自動刪除。

使用方法:
修改 db_user, db_passwd 及 db_host 修改成你的 mysql 登入資料,所使用的用戶權限需要與 mysql root 相同。backup_dir 修改成你希望儲存備份的目錄。

最後只要把程式加入 crontab 排程自動執行即可。[code]#!/bin/sh
# mysql_backup.sh: backup mysql databases and keep newest 5 days backup.
#
# Last updated: 20 March 2006
# ----------------------------------------------------------------------
# This is a free shell script under GNU GPL version 2.0 or above
# Copyright (C) 2006 Sam Tang
# Feedback/comment/suggestions : http://www.real-blog.com/
# ----------------------------------------------------------------------

# your mysql login information
# db_user is mysql username
# db_passwd is mysql password
# db_host is mysql host
# -----------------------------
db_user="root"
db_passwd=""
db_host="localhost"

# the directory for story your backup file.
backup_dir=""

# date format for backup file (dd-mm-yyyy)
time="$(date +"%d-%m-%Y")"

# mysql, mysqldump and some other bin's path
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
MKDIR="$(which mkdir)"
RM="$(which rm)"
MV="$(which mv)"
GZIP="$(which gzip)"

# check the directory for store backup is writeable
test ! -w $backup_dir && echo "Error: $backup_dir is un-writeable." && exit 0

# the directory for story the newest backup
test ! -d "$backup_dir/backup.0/" && $MKDIR "$backup_dir/backup.0/"

# get all databases
all_db="$($MYSQL -u $db_user -h $db_host -p$db_passwd -Bse 'show databases')"

for db in $all_db
do
        $MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db | $GZIP -9 > "$backup_dir/backup.0/$time.$db.gz"
done

# delete the oldest backup
test -d "$backup_dir/backup.5/" && $RM -rf "$backup_dir/backup.5"

# rotate backup directory
for int in 4 3 2 1 0
do
        if(test -d "$backup_dir"/backup."$int")
        then
                next_int=`expr $int + 1`
                $MV "$backup_dir"/backup."$int" "$backup_dir"/backup."$next_int"
        fi
done

exit 0;[/code]--------------------------------------------------
Crontab 備份www、mysql資料夾內容有問題
阿修 Ident: 75878664309b1e12165b 2008/11/18 9:23
請問一下~ 我想要排程備份apacher server的 mysql資料夾與WWW資料夾
但是使用crontab時發現~除了系統的的crontab(/etc/crontab)可以排程外。
在使用者環境下或是用SSH以root登入的crontaba -e所寫的都沒有執行
而且就算利用/etc/crontab來排程~排程備份出來的tar.gz是有問題的
我測試過腳本是沒有問題~~請問一下要如何解決呢?
排程語法:(在/etc/crontab 或是以管理員root或使用者身份進入crontab -e所寫的)
00 18 * * * root /usr/bin/backweb
腳本:/usr/bin/backweb (root.root 755)
ymd=`date +%Y%m%d `
tar cvzf /backup_daily/db/mysql_db_$ymd.tar.gz /var/lib/mysql
tar cvzf /backup_daily/web/web_web$ymd.tar.gz /var/www
tar cvzf /backup_daily/phpini/phpini$ymd.tar.gz /etc/php5/apache2
---------------------------------------------------------
cron 是一個服務(service)名稱
/etc/crontab 為其主要設定檔

當更改設定檔後,需要重新載入或重新啟動,使其立刻生效
# /etc/init.d/cron rload
或
# /etc/init.d/cron restart

----------------------------------------

直接備份 mysql 資料庫(非用 sql 語法導出)
這是最簡單也最快速的備份法
但缺點是需要先關閉 mysql 服務,再備份
否則備份出來的資料庫,很有可能是錯誤的,需要修復

因為表格仍在開啟中就備份,存回去時可能被程式認為是錯誤的
另也有可能備份那瞬間,網頁正在操作資料庫
比如論壇有人正在發文寫入資料庫或其它的
將那瞬間的狀態備份下來,存回去時當然就有錯誤了
所以備份前必須先關閉 mysql 服務

然而關閉 mysql 服務,網站就會停擺...
頁面上會出現資料庫錯誤,很難看

提供我的作法給你參考:
---------------------------------
1.先建立一個備份專用的網頁目錄,比如 /var/www2。內容只有一個 index.html,畫面是:資料庫備份中,或網站維護中,請瀏覽者稍待1~2分鐘...之類的,常逛網路,這種畫面你應該見過。

2.另外要有 404.php 這個檔,404 網頁找不到功能,需於 http.conf 中開啟。內容很簡單,強制導向到 index.html,也就是網站維護中的頁面。[code]// Location 強迫導向,僅能使用「絕對路徑」
header ("Location: http://yourdomain/index.html") ;
exit ;
?>[/code]---------------------------------------------------------------
3.備份前
mv /var/www /var/www3 #將原先目錄更名
mv /var/www2 /var/www #維護中頁面頂上去
這個是瞬間的,不到 0.5 秒

不管瀏覽者正在看什麼頁面,當他按下連結,因為目錄已經改變了,找不到檔案,便會得到 404 訊息。而 404 剛前面已經設定為強制導向到 index.htm 也就是:網站維護中的頁面。

4.接著關閉 mysql 服務,建議先等個 3秒,然後開始備份

/etc/init.d/mysqld stop
slee 3

5.備份完成後,照原來順序,還原回去
先啟動 msyqld,等個3~5秒,因為啟動需要時間
將 www 更名回 ww2,將 www3 更名回 www

不管如何,備份 mysql 是一定要停止服務的,除非你用 sql 語法導出或其它備援機制。

以上作法仍會使網站停擺,但是對外面的訪客來說,他們會看到網站維護中的頁面,並得知過 3分鐘後再來就可以看了,而不是資料庫錯誤的頁面。常逛網路,你應該也看過資料庫錯誤的頁面,會覺得說這個網站很不夠專業,且也不曉得啥時才會恢復。這之間的差別就是在這裡。

建議自動備份時間為當地時間凌晨 4~6 點,根據流量統計,這時段訪客人數最少,影響最小。
-----------------------------------------------
但是~我現在的狀況是~我要排程備份mysql與www這兩個資料夾~

在獨立執行腳本時可以執行備份動作~備份出來的db.tar.gz與web.tar.gz解壓縮後裡面是完整的內容。

但是放入排程執行後是有備份成功,但是出來的db.tar.gz與web.tar.gz內容有問題(解tar 出來後發現mysql只有部分資料庫,web.tar.gz則是沒有內容只有20bytes)

mysql資料夾權限/群組(mysql.mysql)而www資料夾(root.root)

PS:我在腳本前後有加上 /etc/init.d/apache2 stop與 /etc/init.d/apache2 start

設定/etc/crontab環境條件 nbuntu desktop 8.04 以root身份登入desktop環境

請問一下~有人可以解疑為何會這樣呢?感謝

backweb腳本:(/usr/bin/backweb)

ymd=`date +%Y%m%d `
/etc/init.d/mysql stop
/etc/init.d/apache2 stop
tar cvzf /backup_daily/db/mysql_db_$ymd.tar.gz /var/lib/mysql
tar cvzf /backup_daily/web/web_web$ymd.tar.gz /var/www
tar cvzf /backup_daily/phpini/phpini$ymd.tar.gz /etc/php5/apache2
/etc/init.d/apache2 start
/etc/init.d/mysql start
---------------------------------------------------------
我原先也是沒有停止apache與mysql就直接備份但視還是一樣的情況~腳本可以直接執行~

備份出來的tar.gz檔也正確~

但是~放到排程裡面備份出來的就是不行~

有tar.gz檔但內容不完全和沒有資料

我有嘗試將www資料內所有目錄檔案改成(root.root)使用者.群組 權限和mysql改成(root.mysql)

但是利用排程備份結果還是一樣,有排程備份到,但是內容資料還是和上面情況一樣是有問題的~
----------------------------------------------------
debug 偵錯
補抓執行中的訊息(包含錯誤訊息)存到 log 檔

用大於符號,將訊息重新導向存檔
$ 指令敘述 > /root/backup-log.txt 2>&1
老鼠愛大米 2009-6-27 18:50

Cron自動執行指令的備份mysql的問題

我以root身份執行crontab -e
程式碼:
cp -rf /var/mail /root/data_backup
tar -zcf /root/data_backup/home.tar.gz /home

這些指令很正常因為有部份指令我拿掉了。
有問題的指令是在cron下才會有問題,如果一般常在putty的視窗下執行是ok的~
我原本有幾行是在做mysqldump指令~備份資料庫
(以下代碼確定是一行無斷行)
程式碼:
mysqldump -uusername -ppasswd db > /root/data_backup/mysqldb/db.sql
我也試過把在上面的指令在putty上貼上以上指令執行是ok的
然後我也試過改成
程式碼:
/root/data_backup/mysqldb/mysqldb_backup.sh

而mysqldb_backup.sh檔案裡面有寫上面的mysqldump指令連權限我都試過了,即使把整個資料夾含檔案的權限改成777。(一樣cron執行過後卻無備份檔出現)

去看看/var/log/cron有執行過
程式碼:
Jul  8 07:36:00 TwsPC /usr/sbin/cron[32978]: (root) CMD (/root/data_backup/mysqldb/mysqldb_backup.sh)

然後我在把/var/log/cron檔案上寫到我在7點36分執行過的指令/root/data_backup/mysqldb/mysqldb_backup.sh,這行貼到putty上得打指令的地方執行後結果也是ok的~

所以我的問題是以root身份執行crontab -e,不管是用mysqldump -uxxxx.....或是/root/xxxx/xxx/xxx.sh兩種方法,雖然我自己以root身份執行過都正常,但是在用root身份去編輯 crontab後讓cron幫我作之後就不行自動備份成功。 難過
在備份的資料夾裡但卻看不到備份的檔案產生,不知道有大大遇過用cron的mysqldump的問題嗎?
有解決方法是否可以提供一下。

我以前在Linux好像沒有這個問題 :roll:
--------------------------------------------------------------------------------
你所執行的指令,包含scripts裡的指令
最好都補上完整路徑,不然你的系統預設的$PATH不見得有你要執行的程式
-----------------------------------------------------------------------------
把路徑改成
程式碼:
/usr/local/bin/mysqldump
就ok了~

BloggerAds