2023年12月14日 星期四

linux新增靜態路由

使用route add指令建立的路由重開機後就會消失
改由以下方式重開機還可以保留設定
在/etc/sysconfig/network-scripts/目錄下新增route-eth0

1.vi /etc/sysconfig/network-scripts/route-eth0
#指定123.123.123.123走geteway192.168.0.2
123.123.123.123/32 via 192.168.0.2

2.重啟網路
systemctl restart network

2022年11月8日 星期二

SQL Server資料庫出現(Suspect)警告

 處理步驟如下:

1.將資料庫上的SUSPECT切換至 EMERGENCY

EXEC sp_resetstatus 'db_name';

ALTER DATABASE db_name SET EMERGENCY;

2.檢查資料庫一致性

DBCC CHECKDB ('db_name');

3.將資料庫設為單一使用者模式,回復之前的交易

ALTER DATABASE db_name SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

4.執行資料庫修復(此步驟可能遺失部分資料)

DBCC CHECKDB ('db_name', REPAIR_ALLOW_DATA_LOSS);

5.將資料庫變更回多使用者模式

ALTER DATABASE db_name SET MULTI_USER;

6.重新整理資料庫確認狀態是否恢復正常


修復步驟參考以下文章https://tw.easeus.com/amp/data-recovery/recover-sql-database-from-suspect-mode.html

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