shell查詢MySQL並將結果寫入檔案中

2022-03-13 15:22:05 字數 1845 閱讀 8802

找到你的php.ini檔案,一般在 /usr/local/php/etc/php.ini,開啟  

查詢到 disable_functions ,刪除需要使用的函式名,如下:

disable_functions = phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen

刪除我們剛才說的幾個函式,或者將 = 號後面清空(不建議)

儲存,重啟php-fpm和apache或者nginx

1、 通過 ll (兩個小寫的l)  檢視專案目錄的使用者組和使用者

2、通過 ps -ef | grep httpd 檢視apache或者nginx的使用者組和使用者,確保他們一致,

3、如果不一致,將專案目錄修改為apache或nginx的使用者組和使用者,我這裡是www

chown -r www /www

chgrp -r www /www

[root@aca83229 web]# cat update_hosts.sh 

#!/bin/bash

hostname="127.0.0.1" #資料庫主機ip

port="3306" #埠號

username="root" #使用者名稱

password="root" #密碼 (如mysql>5.6會提示密碼安全問題,可以正常執行指令碼,可以在my.cnf檔案中的 [client] 下面加入password = yourpassword,然後注釋本行即可,意思為將密碼寫到配置檔案中,不在shell中明文)

dbname="jl_api_document" #資料庫名稱

tablename="hosts" #資料庫中表的名稱

sudo cp /etc/hosts /etc/hosts_bak #備份hosts檔案

select_sql="select concat_ws(' ',ip,domain,',') as rows from $" #sql語句,已逗號分隔每條記錄,

result=`mysql -h$ -p$ -u$ -p$ $ -e "$" | awk 'nr>1'` #執行sql(如將密碼寫入my.cnf中,刪除 -p$ 即可,因為預設使用了密碼。如此方法行不通,直接 result=`mysql -h$ -p$ -u$ -proot $ -e "$" | awk 'nr>1'`)

arr=$(echo $result|tr -d "\n\t") # 查詢到結果去除特殊符號,

sudo cat /dev/null > /etc/hosts # 清空hosts檔案

for s in $ # 遍歷陣列,寫入hosts檔案,根據是否含有逗號做不同處理

do [[ $s =~ "," ]] && echo -e "\n" >> /etc/hosts

[[ $s =~ "," ]] || echo -n $" " >> /etc/hosts

done

[root@aca83229 web]#

python 執行shell命令並將結果儲存的例項

方法1 將she執行的結果儲存到字串 def run cmd cmd result str process subprocess.popen cmd,shell true,stdout subprocess.pipe,stderr subprocess.pipe result f process.s...

AWK呼叫SHELL,並將變數傳遞給SHELL

在shell指令碼中呼叫awk是非常自然和簡單的,以前還寫過乙個關於awk shell相互傳遞變數的文章 awk與shell之間的變數傳遞方法 在awk指令碼中,如果需要呼叫shell指令碼 命令,則需要使用system 函式,如果需要將變數傳遞給被呼叫的shell,則寫為 system sh my...

AWK呼叫SHELL,並將變數傳遞給SHELL

在shell指令碼中呼叫awk是非常自然和簡單的,以前還寫過乙個關於awk shell相互傳遞變數的文章 awk與shell之間的變數傳遞方法 在awk指令碼中,如果需要呼叫shell指令碼 命令,則需要使用system 函式,如果需要將變數傳遞給被呼叫的shell,則寫為 system sh my...