2022年10月13日 星期四

使用INFORMATION_SCHEMA查詢資料庫內資料表和欄位

顯示所有資料表
SELECT * FROM INFORMATION_SCHEMA.TABLES

顯示資料表所有欄位
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE (TABLE_NAME='XXX')

檢查、修復mysql資料表

檢查資料庫內所有資料表
mysqlcheck -c db_name -u user_id -p

檢查資料庫內指定資料表
mysqlcheck -c db_name tablename -u user_id -p

修復資料庫內所有資料表
mysqlcheck -r db_name -u user_id -p

修復資料庫內指定資料表
mysqlcheck -r db_name tablename  -u user_id -p

2022年3月24日 星期四

mklink建立連結、rmdir取消連結

最近遇到電腦要將檔案同步到OneDrive的問題,因為無法指定特定資料夾同步,但可以有一個偷吃步的方式,那就是建立符號連結

在電腦中OneDrive同步資料夾內建立想要同步資料夾的連結
例:mklink /D C:\Users\user\OneDrive\data D:\data

這方式即使是分享的資料夾也可以
例:mklink /D C:\Users\hsieh\OneDrive\share \\PC\share

但要注意,如果要刪除連結請勿使用del,這樣會真的將資料夾及裡面的檔案刪除,請使用rmdir指令刪除連結

建立符號連結。
MKLINK [[/D] | [/H] | [/J]] Link Target
        /D      建立目錄符號連結。預設是檔案符號連結。
        /H      建立永久連結而不是符號連結。
        /J      建立目錄連接。
        Link    指定新符號連結名稱。
        Target  指定新連結參照的路徑 (相對或絕對)。


移除 (刪除) 一個目錄。
RMDIR [/S] [/Q] [drive:]path
RD [/S] [/Q] [drive:]path
    /S      除了目錄本身之外,一併移除指定目錄裡的所有目錄和檔案。
            用於移除樹狀目錄結構。
    /Q      安靜模式,有 /S 時,刪除目錄樹結構不再要求確認

2021年10月14日 星期四

WRITE SAME failed. Manually zeroing.

用VM安裝Issabel,啟動後會一直出現sda3: WRITE SAME failed. Manually zeroing.
google了一下有個方式可以關閉

1.建立/usr/local/sbin/disable-write-same
#!/bin/sh 
find /sys/devices -name max_write_same_blocks | while read DISK; do echo 0 >"${DISK}"; done
ps.以上建議直接用vim建立編輯檔案,不要從網頁上複製,不然執行時會出現'\r'的錯誤

2.編輯/etc/rc.d/rc.local加入
#disable-write-same
./usr/local/sbin/disable-write-same

以上步驟可以在開機時自動關閉write same,這樣就不會出現WRITE SAME failed訊息

2021年2月22日 星期一

在Debian開啟SSH

 1. vi /etc/ssh/sshd_config

設定以下參數設定

PasswordAuthentication yes

PermitRootLogin yes


2. 啟動SSH

/etc/init.d/ssh start 或 service ssh start

3. 設定成自動啟動

update-rc.d ssh enable

在Debian安裝ifconfig

直接使用apt install ifconfig指令會無法安裝

因為ifconfig包含在net-tools套件內

所以要改以下指令安裝

apt install net-tools

2020年5月8日 星期五

vmware 壓縮vmdk檔案 釋放硬碟空間

windows os比較簡單
先進Hard Disk選項執行Defragment
再來執行Clean Up Disks

linux os則沒有Clean Up Disks
1.執行 sudo dd if=/dev/zero of=zero.dat ; rm -f zero.dat
/dev/zero是一個0k size的檔案用它來填滿未使用的空間,填滿後再刪除就可以讓未使用的空間沒存放資料,如果你設定的虛擬空間很大執行這動作要花點時間

注意:執行指令時,請先使用df指令查詢分割,必須在存放資料的位置下執行才有用喔

2.壓縮檔案,執行後一樣再耐心等候
C:\Program Files (x86)\VMware\VMware Workstation>vmware-vdiskmanager.exe -k "D:\VM\linuxOS.vmdk"

大功告成!!

2020年4月9日 星期四

sox轉換錄音格式 convert gsm to wav (PCM)

elastix預設錄音格式是wav,但檔案實在太大,改成gsm會小很多
但撰寫的調錄音程式要線上撥放就要先用sox轉成wav(要特定格式)

gsm to wav (PCM)
sox input.gsm -r 8000 -c 1 -w -s output.wav

另外若要gsm轉wav
sox input.wav -r 8000 output.gsm resample -q1

elastix修改錄音路徑、錄音檔格式

asterisk錄音檔預設路徑
/var/spool/asterisk/monitor

1.進入extensions_additional.conf
#錄音路徑
MIXMON_DIR = /mnt/monitor/
#錄音格式
MIXMON_FORMAT = gsm

2.進入freepbx->Advanced Settings
Override Call Recording Location 設定錄音路徑
Call Recording Format 設定錄音格式

如果會使用freepbx介面設定的話,建議使用介面修改,因為編輯extensions_additional.conf似乎不會連動freePBX的設定,使用介面設定後會覆蓋原設定

2020年1月30日 星期四

使用originate自動呼叫

使用originate自動呼叫
先呼叫分機再呼叫外線

Action: originate
ActionID: 2
Channel: SIP/123
CallerId: 0910123123 <123>
Exten: 0910123123
Context: from-internal
Variable: __SIPADDHEADER=Call-Info: Answer-After=0
Priority: 1
Async: true

註:Variable: __SIPADDHEADER=Call-Info: Answer-After=0 可使話機自動應答

2019年2月22日 星期五

Elastix修正批次新增分機無法設定錄音

在Batch Configurations中有個Batch of Extensions功能,可以上傳CSV批次新增分機,在新增大量分機及Incoming DID及Outbound CID省下不少時間,但發現不管是在2.5版或4.0版的Elastix,上傳CSV後分機有建立,但錄音設定卻都是Don't Care,上網查詢似乎沒什麼資訊,查了 資料表發現錄音的設定並沒存在mysql裡的table,最後乾脆直接打開上傳功能的source code來研究一下,發現原來程式限制資料只能輸入enabled、dontcare、disabled,因此你若輸入always和never就認定無效,所以只要把程式中

if (!in_array($extension[$k], array('enabled', 'dontcare', 'disabled')))
改成
if (!in_array($extension[$k], array('always', 'dontcare', 'never')))

這樣就行了

路徑:modules/extensions_batch/libs/paloSantoExtensionsBatch.class.php

2018年8月24日 星期五

NTP安裝設定

1.若沒NTP服務請先安裝
#yum install ntp

2.設定/etc/ntp.conf
# 1. 先處理權限方面的問題,包括放行上層伺服器以及開放區網用戶來源:
restrict default kod nomodify notrap nopeer noquery     <==拒絕 IPv4 的用戶
restrict -6 default kod nomodify notrap nopeer noquery  <==拒絕 IPv6 的用戶
restrict tock.stdtime.gov.tw   <==放行 tock.stdtime.gov.tw 進入本 NTP 伺服器
restrict tick.stdtime.gov.tw
restrict time.stdtime.gov.tw
restrict 127.0.0.1
restrict -6 ::1
#restrict 192.168.1.0 mask 255.255.255.0 nomodify

# 2. 設定主機來源,請先將原本的 [0|1|2].centos.pool.ntp.org 的設定註解掉:
server tock.stdtime.gov.tw prefer  <==以這部主機為最優先
server tick.stdtime.gov.tw
server time.stdtime.gov.tw

# 3.預設時間差異分析檔案與暫不用到的 keys 等,不需要更動它:
driftfile /var/lib/ntp/drift
keys      /etc/ntp/keys

3.啟動NTP服務
#systemctl start ntpd

4.將NTP預設起動
#chkconfig ntpd on

2018年8月21日 星期二

MySQL(MariaDB)將Latin1改成UTF-8

1. #vim /etc/my.cnf

2.將下列複製貼到檔案內
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

3. #reboot