Linux:memory and swap 管理

檢視memory

  • buff/cache : 系統可自行回收再使用

clean cache

clean swap

swap 調整開始使用的比例,下例為mem 剩於10% 開始使用

Linux:取得硬體相關溫度資料

on ubuntu 20.14

install

檢查相容的傳感器

檢視溫度

linux:榨乾剩餘資源之門羅幣(XMR)挖礦

system : debian10

update and tools install

create config from

https://config.xmrig.com/

run xmrig

./xmrig

Linux:History 二三事

刪除本次 console 的操作紀錄

完全刪除所有history

記錄 histroy 時間, 可以放在 /etc/bash.bashrc 裡

export HISTTIMEFORMAT='%F %T '

Mysql:大量kill process id

mysql 被搞爛的時候 ex: 下錯 index , alert 錯, 屬性 ...
大量的 process 堆積又不能 stop mysql,我們需要一個大量 kill 的 script
先了解資料該從哪裡來:

mysql> show create table information_schema.processlist \G;
*************************** 1. row ***************************
       Table: PROCESSLIST
Create Table: CREATE TEMPORARY TABLE `PROCESSLIST` (
  `ID` bigint(21) unsigned NOT NULL DEFAULT '0',
  `USER` varchar(32) NOT NULL DEFAULT '',
  `HOST` varchar(64) NOT NULL DEFAULT '',
  `DB` varchar(64) DEFAULT NULL,
  `COMMAND` varchar(16) NOT NULL DEFAULT '',
  `TIME` int(7) NOT NULL DEFAULT '0',
  `STATE` varchar(64) DEFAULT NULL,
  `INFO` longtext,
  `TIME_MS` bigint(21) NOT NULL DEFAULT '0',
  `ROWS_SENT` bigint(21) unsigned NOT NULL DEFAULT '0',
  `ROWS_EXAMINED` bigint(21) unsigned NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8

當然你也可直接用show processlist , 不過還要自己拆解欄位,selete table 篩選語法也很直觀
接著我們可以利用T-SQL 來組合出我們要的語法:

select concat('KILL ',id,';') from information_schema.processlist
where user='root' and time > 200 and info like 'select %' into outfile '/var/lib/mysql-files/kill.txt';
# user =  root
# time  >  200 sec
# info 是 selet 開頭
# 然後寫到 /var/lib/mysql-files/ , 確認無誤後再輸入
  
mysql> source /var/lib/mysql-files/kill.txt;

## 補充知識
/var/lib/mysql-files/ 這個目錄是預設位置,如果你想改,正常會得到以下錯誤

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
執行以下語法查詢目前設定:

mysql> show global variables like '%secure_file_priv%';
# null 表示未設定

但這個值是維讀不能線上修改,必要的話要去改my.cnf ,然後重啟mysql
最無腦的就是設定,請留意安全性

secure_file_priv=''

其次是要寫入的目錄必需是mysql 的user 可寫,如我習慣用 mysql:mysql這個user:group 跑 mysql service ,
就必需 mysql 可以寫入,不然也是出錯

Linux: rsyslog imfile module 應用

目的:
載入 squid access.log 輸出到遠端 rsyslog server , 使用local7
squid : /etc/rsyslog.d/squid.conf

rsyslog server : /etc/rsyslog.d/squid_collect.conf

syslogfacility-text 對應到 Facility
programname 對應到 Tag

Linux: sshpass 應用

sshpass -p 的用法就不介紹了,google 一堆,且有安全性考量
介紹一下最近寫的一次script,主要配合rsync 做資料轉移
使用 sshpass -e ,配合export 做成環境變數

openvpn: 在client 端自訂route

為滿足mobile 連接openvpn 通常會在 server 端下一個push default gateway
不過在mac 上也幫我全轉就令我有點困擾,手動來改一下ovpn

# 忽略push 過來的 gateway
# 2.4版後建議的最佳解法,別問我2.4以前怎麼處理... 請升級
pull-filter ignore redirect-gateway

# 要去的網段: 192.168.1.0/24
# openvpn server tun ip : 10.254.254.1
route 192.168.1.0 255.255.255.0 10.254.154.1

重連vpn 就生效了