系統操做注意事項

1. 系統安裝完成後,須要檢查sweed運行情況;
curl 127.0.0.1:/9333/dir/status?pretty=y
2. Cboss訪問sweed,須要在第一臺主節點防火牆打開外網權限,不然cboos圖片上傳會出問題;
3. 查看當前一級目錄文件大小
du -h --max-depth=1
4. 檢查nginx進程是否存在:
ps -C nginx --no-header |wc -l
5. 統計目錄下文件和目錄個數:
ll | wc -l

6.
mkdir /var/www/weedfs && chmod 777 /var/www/weedfs

nohup /usr/local/sunlight/weed -log_dir=/var/log/weed/ server -ip 192.168.89.211 -master.port=9333 -master.defaultReplicaPlacement=001 -dir=/var/www/weedfs -volume.port=8180 -volume.max=10 -master.peers=192.168.89.212:9333,192.168.89.213:9333 &php

nohup /usr/local/sunlight/weed -log_dir=/var/log/weed/ server -ip 192.168.89.212 -master.port=9333 -master.defaultReplicaPlacement=001 -dir=/var/www/weedfs -volume.port=8180 -volume.max=10 -master.peers=192.168.89.211:9333,192.168.89.213:9333 &html

nohup /usr/local/sunlight/weed -log_dir=/var/log/weed/ server -ip 192.168.89.213 -master.port=9333 -master.defaultReplicaPlacement=001 -dir=/var/www/weedfs -volume.port=8180 -volume.max=10 -master.peers=192.168.89.211:9333,192.168.89.212:9333 &

curl 127.0.0.1:9333/dir/status?pretty=y

curl -X GET 127.0.0.1:9333/dir/assign

7,f783a5378d



/var/lib/myql/grastate.dat

請求fid
curl -X GET 127.0.0.1:9333/dir/assign

curl http://192.168.88.48:9333/dir/lookup?volumeId=10

curl -X POST -F file=@1117518589f06eb094o.jpg http://192.168.88.47:8180/10,029d27af767b

前端

7.
sweed服務器能夠增長volume數目 -volume.max=10
新的sweed就緒後,須要從新執行assign命令,使volumn服務器可用;

8. 調整系統時間:
vim /etc/adjtime 把UTC改爲LOCAL


182.247.239.156

9.node

Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agentd.service to /usr/lib/systemd/system/zabbix-agentd.service.

10.
zypper addrepo \
https://storebits.docker.com/ee/sles/sub-2bf76308-3675-49bc-9eca-88ac9ca0d356/12.3/x86_64/stable-17.03 \
docker-ee-stablepython

rpm --import https://storebits.docker.com/ee/sles/sub-2bf76308-3675-49bc-9eca-88ac9ca0d356/gpgmysql

11.linux

1)HAProxy對於後端服務器一直在作健康檢測(就算請求沒過來的時候也會作健康檢查):
後端機器故障發生在請求還沒到來的時候,haproxy會將這臺故障機切掉,但若是後端機器故障發生在請求到達期間,那麼前端訪問會有異常。也就是說HAProxy會把請求轉到後端的這臺故障機上,並通過屢次探測後纔會把這臺機器切掉,並把請求發給其餘正常的後端機,這勢必會形成一小段時間內前端訪問失敗。
2)Nginx對於後端的服務器沒有一直在作健康檢測:
後端機器發生故障,在請求過來的時候,分發仍是會正常進行分發,只是請求不到數據的時候,它會再轉向好的後端機器進行請求,直到請求正常爲止。也就是說Nginx請求轉到後端一臺不成功的機器的話,還會再轉向另一臺服務器,這對前端訪問沒有什麼影響。
3)所以,若是有用HAProxy作爲前端負載均衡的話 ,若是後端服務器要維護,在高併發的狀況,確定是會影響用戶的。但若是是Nginx作爲前端負載均衡的話,只要併發撐得住,後端切掉幾臺不會影響到用戶。 nginx

12.
number_format()自帶千分位分隔符,用它處理後的數字插入數據庫會出錯,
可以使用第四個參數,把千分位設置爲空。git

13.
遞歸函數,如何返回?web

function getItemParentId($id,$ty=6,$rt)
{
$id = intval($id);
$sql = "SELECT `objectid`, `categoryid` FROM `categorymap` WHERE objectid = ".$id." AND objecttype=".$ty;
$result = $this->obj_db->fetch_row($sql,$list);
if (!$result)
{
$log_location = "[" . __FILE__ . ":" . __FUNCTION__ . ":" . __LINE__."]";
tool_utils::log(LOG_LEVEL_ERROR, $log_location, "sql: [$sql]");
$res = array(
'ResultCode'=>self::ERR_CODE,
'ResultDesc'=>self::ERR_DES.'-'.'categoryid表查詢失敗!'
);
echo json_encode($res);exit();
}

if(in_array(intval($list['categoryid']),$rt))
{
return intval($list['objectid']);
}else if(intval($list['categoryid']) != 0)
{
return $this->getItemParentId($list['categoryid'],1,$rt);
}else{
return $list['objectid'];
}
}

14.

php5.5如下,不支持array_column,能夠用array_walk抽取數組特定列:
$rootsss = array();
array_walk($roots, function($value, $key) use (&$rootsss ){
$rootsss [] = $value['categoryid'];
});

 


雲南服務器升級:

1. 內網VIP: 192.168.88.189

外網VIP:反向代理節點的實IP;

2. 反向代理節點,管理節點,同時安裝keepalived,maxscale,設置keepalived開機自啓動;

3. 前兩個應用節點,須要卸載haproxy,keepalived;

4. 第一個應用節點,卸載Maxscale;

5.


防火牆,深圳總部:218.17.162.117

 


爬蟲安裝:

1. SunCrawler2更更名稱爲SunCrawler

2. weather.ini /usr/local/sunlight/conf

3. 數據庫文件從/usr/local/sunlight/conf/server.conf讀取


文件同步/usr/local/sunlight/efsync

110,132,134,135須要修改同步目錄

 


文件同步工具安裝:
1. 必須執行安裝腳本,進行初始化安裝(有附帶軟件須要裝上);


2.拉取重慶/usr/local/sunlight/efsync/conf/hotelinfo.ini
拉取重慶/usr/local/sunlight/efsync/EFSyncMainCtrl.sh
修改配置文件;
3.nohup EFSyncMainCtrl.sh push &

/usr/local/sunlight/efsync/tools/kill_by_name.sh 刪掉進程
ps -ef|grep EFS 判斷進程是否存在

4. 各應用節點,edge_hwserver輸入不執行,文件不能同步;
5. 測試: ssh -o StrictHostKeyChecking=no -p 22 -i /usr/local/sunlight/sshkeys/init.pk 192.168.86.74

6. 須要同步的文件夾: /iptv /epgservice /app

Sunaudit:
slib/CADB.class.php
須要讀取 /usr/local/sunlight/conf/sunaudit.conf
審覈的定時任務:
/etc/cron.d/
如 採用https協議,會對審覈產生影響,審覈平臺沒法接收參數!

 

修改SUSE默認啓動級別(開機後進入命令行而不是桌面環境):
ln -fs /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target

systemctl set-default multi-user.target
systemctl set-default graphical.target

 

 

 

 

天氣預報代碼:
1. 拷貝weather.ini /usr/local/sunlight/conf
2. 若是手動執行,須要清空SunCrawler目錄下的data目錄;
3. 查詢weathercity,裏面的城市status;
4. 拷貝定時任務;

 


2017/6/23
while循環登陸ip,須要加-n參數!!!!!!!!!!!!!
ssh -n -o StrictHostKeyChecking=no -p 22 -i /usr/local/sunlight/sshkeys/init.pk 192.168.86.74


2017/6/26
shell-if-語句空操做的寫法:
if ((1==1))
then
:
fi



2017/6/27

綁定終端-導入的csv格式文件,應包含三列數據(老版本須要導入前兩列;)

用戶ID,房間號,盛陽終端號

若是隻有一個終端,則終端號和房間號相同;
一個套房若是有兩個終端,則終端號命名規則以下:
房間號801,
第一個終端號8011
第二個終端號8012

剛纔葉濤又強調了一次,若是提示三列,必定要導入三列16:44;

 

2017/6/28

查看當前服務器
maxadmin list servers
查看當前服務
maxadmin list services


導入終端,牽涉到兩張表;
hotel - 查找hotelid
stbhotelmap - 經過hotelid查找終端;

 

深圳經濟特區居住證服務平臺
https://szjzz.szga.gov.cn/index/manage/viewDocument
用戶名:ralphdc
密碼:Abc87113447

市政統一入口,用戶名密碼同上;


https://sz12333.gov.cn
申辦居住證人員覈實學歷


匯園雅居-管理處->粵海街道辦事處->麻嶺社區工做站(電話未能接通)


saaa模塊在APK模式安裝後,須要開放UDP-8088端口;
須要檢查smon配置文件:
/usr/local/sunlight/proc_list 不
開啓saaa的配置是否存在而且沒有被註釋掉;

 

dear all:
在執行當前考勤制度同時,容許總部加班較多的同事有必定的上班彈性,具體操做以下:
(1)若是前一天下班時間超過晚上8點30分,次日能夠不晚於9點30分上班;
(2)若是前一天下班時間超過晚上9點30分,次日能夠不晚於10點上班;
(3)若是前一天下班時間超過晚上12點,能夠申請調休半天。
以上調整自12月12日起開始執行,其餘仍參照現有考勤制度執行。

測試環境:
115.28.104.91
ssh port: 11022
http port 11080
user: root
passwd: sunlight2010

正式環境:(密碼不能外傳)
115.28.104.91
ssh port: 22
user: root
passwd: SLadminn2#m

表單中enctype="multipart/form-data"的意思,是設置表單的MIME編碼。默認狀況,這個編碼格式是application/x-www-form-urlencoded,不能用於文件上傳;只有使用了multipart/form-data,才能完整的傳遞文件數據,進行下面的操做.


運營商ssh密碼規則,你們看下如何:
sladmin@yn.01.g,sladmin@yn.01.y,sladmin@yn.01.f

yn -- 雲南(省)
01 -- 第一個運營商(之後順序要定義好,例如湖北爲02)
g -- 管(g)理服務器
y -- 業(y)務服務器
f -- 反(f)向代理服務器

考慮到管理服務器須要對接PMS,因此感受密碼仍是要區分一下

 

 

2017/07/17
sql讀取一條記錄,limit 1;

 


2017/07/18
88.59 打包腳本


@超人超 回頭配置一下nginx的日誌格式,把每一個請求的花費時間放出來

 

2017/07/21
子網掩碼只有一個做用,就是將某個IP地址劃分紅網絡地址和主機地址兩部分。
子網掩碼是一個32位地址,用於屏蔽IP地址的一部分以區別網絡標識和主機標識,並說明該IP地址是在局域網上,仍是在遠程網上。
子網掩碼(subnet mask)是每一個使用互聯網的人必需要掌握的基礎知識,只有掌握它,纔可以真正理解TCP/IP協議的設置。


2017/07/24
董超,放大線程數後,要觀察下系統句柄數佔用狀況,避免把系統資源消耗光。另外,要研究下maxscale的回收配置,不能一直這麼增加。


2017/07/27
修改hostname命令:
hostnamectl set-hostname hostname


2017/07/28

1. 管理節點首先向ntp.api.bz進行時間同步:
ntpdate -u ntp.api.bz

2. 系統時間同步後,寫入硬件,不然重啓後時間丟失;

展現硬件時間:hwclock --show
將系統時間寫入硬件時間:hwclock -w

sed中使用變量;

通常在sed 中替換都用單引號,以下邊
sed -in-place ‘s/8080/8001/g’ /home/work/server.xml
可是若是須要把8001改爲變量,如
sed -in-place ’s/8080/$port/g‘ /home/work/server.xml
這樣就不成功。
此時須要把單引號改爲雙引號,以下邊例子
$port=8001
sed -in-place "s/8080/$port/g" /home/work/server.xml


2017/07/31

今天嘗試編譯內核,下載到了一份tar.xz結尾的壓縮文件,網上解決方法比較少,不過仍是找到了,以下:

 

$xz -d ***.tar.xz

$tar -xvf ***.tar

能夠看到這個壓縮包也是打包後再壓縮,外面是xz壓縮方式,裏層是tar打包方式。


補充:目前能夠直接使用 tar xvJf ***.tar.xz來解壓


tcpdump -i any tcp port 10002

tcpdump -i tcp port 10002

2017/08/01
cdb20.stbhotelmap 導入的終端都在這個表裏面;

2017/08/02
stbid是一個設備號;

ps aux --sort -rss


2017/08/03

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" '
'$upstream_addr $upstream_response_time $request_time'



115.28.104.91 阿里雲


2017/08/07

數據庫安裝分支:
cdb20,sunaudit -> master,其它 2.4.9_unidb_dev

2017/08/08
1. show variables like 'hostname';

2. 修改最大鏈接數;
/etc/systemd/system.conf
sed -i '/DefaultTasksMax/a\DefaultTasksMax=10240'

3.管理節點,開啓防火牆後,要把本身的外網IP加入防火牆訪問規則;

4. event.sql從maxscale導入,能夠經過登陸單個節點,執行命令: show events 查看enable,disable狀況;

 

2017/08/10
sunboss-> enable_reverse_proxy 1
sunboss-> reverse_proxy_url_prefix /image

/etc/cron.d/ 目錄下的定時任務文件,由於全部者和全部用戶致使沒法執行;

2017/08/11
河南虛擬機安裝部署前,居然沒有檢查硬盤配置,致使後期要從新增長分區,給本身找麻煩!
心細很重要!


訪問公司內網——88.54
218.17.162.117,端口:10007
(此服務器爲88.54)

DELL - R210 安裝ESX6.5, 須要進bois設置,開啓虛擬化virtualize相關。。

SUSE中,zypper命令的使用:
zypper addrepo -f http://packman.inode.at/suse/SLE_12/ packman
zypper repos -d
zypper in git-core


阿里雲:
測試環境:
115.28.104.91
ssh port: 11022
http port 11080
user: root
passwd: sunlight2010

正式環境:(密碼不能外傳)
115.28.104.91
ssh port: 22
user: root
passwd: SLadminn2#m


2017/08/14
Git查看遠程倉庫信息:
git remote show origin

爬蟲:
master - 單體酒店版;
阿里雲,沒有數據庫參數配置文件,需寫入cdb20;

2017/08/16
88.52:/usr/local/pkgs/sp/2.0.0.v003


2017/08/17
SUSEfirewall2 防火牆設置:
FW_DEV_EXT="eth0"
FW_DEV_INT="eth1 eth2 eth3"
FW_PROTECT_FROM_INT="no"
FW_SERVICES_EXT_TCP="80 112 8088 9333 8180 10080"
FW_SERVICES_EXT_UDP="8088"
FW_SERVICES_ACCEPT_EXT="218.17.162.117,tcp,2222
122.143.10.36,tcp,112
122.143.10.38,tcp,112
122.143.10.38/24,tcp,9333
122.143.10.38/24,tcp,8180
115.28.104.91,tcp,2222"

 

 


route add default via 116.55.226.181 dev eth0


2017/08/21
1. OCService 位置: /var/www/html/slib/modules

2. git 建立分支命令行
1:Git branch branchName(在本地建立一個命名爲branchName的分支)
2:git branch 查看當前本身所在的分支
3:git branch -a 查看服務器的全部分支以及本身當前所在的分支
4:git push origin branchName(把命名爲branchName的本地分支推送到服務器)
5:git checkout --track origin/branchName (切換爲遠程服務器上的命名爲branchName的遠程分支)
6:若是你的搭檔要把他本地的分支給關聯到服務器上命名爲branchName的遠程分支,請執行如下操做,git branch --set-upstream localBranchName origin/branchName (爲本地分支添加一個對應的遠程分支 與之相對應)->這行命令用來關聯本地的分支與服務器上的分支
7:完成以上操做以後,就能夠進行提交代碼了,可是在提交代碼以前,你要肯定你當前所在的分支
8:git push origin branchName(提交代碼到遠程服務器上命名爲branchName的分支上)
9 :git pull origin branchName (從遠程分支上拉取代碼)

 

3. 在linux下使用curl訪問 多參數url GET參數問題
例如
url 爲 http://mywebsite.com/index.PHP?a=1&b=2&c=3
web形式下訪問url地址,使用$_GET是能夠獲取到全部的參數
然而在Linux下
curl http://mywebsite.com/index.php?a=1&b=2&c=3
$_GET只能獲取到參數a
因爲url中有&,其餘參數獲取不到,在linux系統中& 會使進程系統後臺運行
必須對&進行下轉義才能$_GET獲取到全部參數
curl http://mywebsite.com/index.php?a=1\&b=2\&c=3


4.
Git diff 能夠查看當前沒有add 的內容修改(不在緩衝區的文件變化)

git diff --cached查看已經add但沒有commit 的改動(在緩衝區的文件變化)

git diff HEAD 是上面兩條命令的合併

5.date_sub()函數的例子:

今天是2013年5月20日。

date_sub('2012-05-25',interval 1 day) 表示 2012-05-24
date_sub('2012-05-25',interval 0 day) 表示 2012-05-25
date_sub('2012-05-25',interval -1 day) 表示 2012-05-26
date_sub('2012-05-31',interval -1 day) 表示 2012-06-01
date_sub(curdate(),interval 1 day) 表示 2013-05-19
date_sub(curdate(),interval -1 day) 表示 2013-05-21
date_sub(curdate(),interval 1 month) 表示 2013-04-20
date_sub(curdate(),interval -1 month) 表示 2013-06-20
date_sub(curdate(),interval 1 year) 表示 2012-05-20
date_sub(curdate(),interval -1 year) 表示 2014-05-20

6. curl 命令請求https地址,若是報證書錯誤,能夠經過-k參數忽略證書驗證;


7.
本文實例講述了PHP針對字符串開頭和結尾的判斷方法。分享給你們供你們參考,具體以下:
//變量:
$s1 = "dotcoo world!";
$s2 = "dotcoo";
$s3 = "hello dotcoo";
//php判斷字符串開頭:
var_dump(substr($s1, 0, strlen($s2)) === $s2);
var_dump(strpos($s1, $s2) === 0);
var_dump(strncmp($s1, $s2, strlen($s2)) === 0);
var_dump(substr_compare($s1, $s2, 0, strlen($s2)) === 0);
//php判斷字符串結尾:
var_dump(substr($s1, 0, strlen($s2)) === $s2);
var_dump(substr_compare($s3, $s2, -strlen($s2)) === 0);

 

2017/08/22

操做系統的iso能夠從這裏下載:
(SLES12SP2)
連接:http://pan.baidu.com/s/1kVa7ATL 密碼:zqzo


2017/08/23
雲南-sunaudit登陸賬號:
user: shengyang
password: sunlight
系統啓動文件:
/etc/init.d/after.local


2017/0828
1). echo 不換行:
echo -e "Please Set A Hostname For This Server:\c"
或者: echo -n "123.."

2). shell判斷字符串爲空的方法有三種:
if [ "$str" = "" ]
if [ x"$str" = x ]
if [ -z "$str" ] (-n 爲非空)
注意:都要代雙引號,不然有些命令會報錯,養成好習慣吧!


3). memory leak 內存泄漏;
4). shell讀入變量:
read -p "Please input your choice(one|two|three|four):" num
5).shell正則匹配:
if [ `echo $slthostname | grep -E "^[A-Za-z0-9_-]+$"` ];then
fi
6). shell switch case語句:
case $num in
"one")
printInfo; echo $num | dotr
;;
"two")
printInfo; echo $num | dotr
;;
"Three")
printInfo; echo $num | dotr
;;
"four") printInfo; echo $num | dotr
;;
esac
shell將字符串中的逗號轉爲空格;
weed_cluster_str=${weed_cluster_str//,/ }

 

2017/08/30
inotifywait 配置文件,裏面對應的目錄,必定要存在,不然會循環報錯,致使程序阻塞。

2017/08/31

1). 安裝stunnel客戶端(實際,兩臺boss服務器都須要安裝);
2). 修改配置文件:/usr/local/sunlight/conf/stunnel.conf
例如:
host_id=160
master_host_name=218.17.162.117,115.28.104.91,112.80.41.151,120.25.57.223
(以上配置文件來自:88.54)

3).啓動stunnel進程;
4).開始測試

重大錯誤:
亞特蘭蒂斯運行環境,應該安裝單體酒店版,被我安裝成了運營商版!!!!!!!!!!!!!!!!!!!

2.
2.1) SHOW VARIABLES LIKE 'event_scheduler';

2.2) Mysql 刪除事件
EVENT使用DROP EVENT語句來刪除已經建立的事件,語法以下:

DROP EVENT
[IF EXISTS]
event_name


但當一個事件正在運行中時,刪除該事件不會致使事件中止,事件會執行到完畢爲止。使用DROP USER和DROP DATABASE 語句同時會將包含其中的事件刪除。
http://www.jb51.net/article/38319.htm

3.rm命令排除文件;
3.1)
rm -rf !(keep) #刪除keep文件以外的全部文件
rm -rf !(keep1 | keep2) #刪除keep1和keep2文件以外的全部文件
3.2)
ls | grep -v keep | xargs rm #刪除keep文件以外的全部文件


3.3). grep 'test' somefile | grep -vE '(error|critical|warning)' 一次grep -v 中使用多個 匹配詞
-v:顯示不包含匹配文本的全部行。
-E 使用擴展正則表達式

 

4. 模板不能保存的問題,路徑:/var/www/html/app/epggroup_default/welcomepage

2017/09/01

mysql -h $CUR_DB_HOST -P $CUR_DB_PORT -u$CUR_DB_USER -p$CUR_DB_PASS
p和$CUR_DB_PASS要緊密連在一塊兒,才能被mysql命令識別;

galera arbitrator
/etc/sysconfig/garb

# Copyright (C) 2013-2015 Codership Oy
# This config file is to be sourced by garbd service script.

# A space-separated list of node addresses (address[:port]) in the cluster:
GALERA_NODES="192.168.88.155:4567 192.168.88.156:4567"

# Galera cluster name, should be the same as on the rest of the node.
GALERA_GROUP="ytlds_app_cluster"

# Optional Galera internal options string (e.g. SSL settings)
# see http://galeracluster.com/documentation-webpages/galeraparameters.html
#GALERA_OPTIONS="socket.ssl_cert=/etc/galera/cert/cert.pem;socket.ssl_key=/$"

# Log file for garbd. Optional, by default logs to syslog
LOG_FILE="/var/log/garb/garbd.log"


2017/09/02

shell腳本返回值的問題:
function Write_Log()
{
echo "log***222"
#echo $1 >> $SLT_BASE_DIR"/install.log"
echo "$*" >> $SLT_BASE_DIR"/install.log"

}


#!/bin/bash
funWithParam(){
echo "The value of the first parameter is $1 !"
echo "The value of the second parameter is $2 !"
echo "The value of the tenth parameter is $10 !"
echo "The value of the tenth parameter is ${10} !"
echo "The value of the eleventh parameter is ${11} !"
echo "The amount of the parameters is $# !"
echo "The string of the parameters is $* !"
}

#!/bin/bash
funWithReturn(){
echo "The function is to get the sum of two numbers..."
echo -n "Input first number: "
read aNum
echo -n "Input another number: "
read anotherNum
echo "The two numbers are $aNum and $anotherNum !"
return $(($aNum+$anotherNum))
}
funWithReturn
echo "The sum of two numbers is $? !"


#!/bin/bash
count=1
cat datafile.txt | while myline=$(line)
do
echo "LINE:"$myline
count=$[$count + 1]
#count=`expr $count + 1`
#echo $count
done

echo finish
echo "\r"
echo $count //輸出仍然是1?
該shell腳本的while控制結構中的變量count作加1算術運算,最後一行輸出值沒有改變。
在shell中變量定義都是global的,除非在function內部用local定義變量,在這裏爲何在最後一行的輸出中,變量count沒有增長呢
?首先確認文件datafile.txt裏面是有多行數據的,找到緣由是這樣的:cat datafile.txt | while 這裏用了管道符,
代表父shell中的局部變量不會傳遞到子shell中。問題解決

 


2017/09/03
find查找多個後綴名文件;
dos2unix `find . \( -name "*.ini" -o -name "*.conf" -o -name "*.sh" \)`

 

2017/09/04


[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

character-set-server=utf8

init_connect='SET collation_connection=utf8-unicode_ci'

init_connect='SET NAMES utf8'

collation-server=utf8_unicode_ci

skip-character-set-client-handshake

 


192.168.88.51 255.255.255.0
192.168.88.59 255.255.255.0

兩個網卡的掩碼問題!

 

2. netstat 命令,參數,查看tcp和udp協議端口;
netstat -nlutp


3.
shell腳本,判斷變量類型是否爲函數;
if [ "$(type -t $function_name)" != "function" ];then
write_install_log="Create_Weed_Install_Log"
else
write_install_log="Write_Log"
fi


2017/09/06
shell正則:
if [[ $1 =~ "TT" ]];then
....

shell 日期格式化:
date "+%Y-%m-%d %H:%M:%S"

IP後面的掩碼,通常設置爲24位!切記!


2017/09/07

arping -I eth0 192.168.86.101
ARPING 192.168.86.101 from 192.168.86.155 eth0
Unicast reply from 192.168.86.101 [18:66:DA:A8:47:CC] 0.698ms
Unicast reply from 192.168.86.101 [18:66:DA:A8:47:CC] 0.801ms
Unicast reply from 192.168.86.101 [18:66:DA:A8:47:CC] 0.733ms
Unicast reply from 192.168.86.101 [18:66:DA:A8:47:CC] 0.725ms
Unicast reply from 192.168.86.101 [18:66:DA:A8:47:CC] 0.745ms
Unicast reply from 192.168.86.101 [18:66:DA:A8:47:CC] 0.700ms
Unicast reply from 192.168.86.101 [18:66:DA:A8:47:CC] 0.707ms
Unicast reply from 192.168.86.101 [18:66:DA:A8:47:CC] 0.742ms
Unicast reply from 192.168.86.101 [18:66:DA:A8:47:CC] 0.699ms
Unicast reply from 192.168.86.101 [18:66:DA:A8:47:CC] 0.729ms

 

find . \( -name "*.sh" -o -name "*.py" -o -name "*.ini" -o -name "*.cnf" -o -name "*.conf" -o -name "*.sql" \) | xargs dos2unix

grep -E '^Port[ ]*[0-9]+' /etc/ssh/sshd_config


201七、0九、08
注意source和sh執行腳本的區別;
sh腳本中引入其餘sh腳本執行,須要使用source關鍵字;

source filepath 與 sh filepath 、./filepath的區別:

當shell腳本具備可執行權限時,用sh filepath與./filepath是沒有區別的。./filepath是由於當前目錄沒有在PATH中,全部"."是用來表示當前目錄的。

sh filepath 會從新創建一個子shell,在子shell中執行腳本里面的語句,該子shell繼承父shell的環境變量,但子shell是新建的,其改變的變量不會被帶回父shell,除非使用export。

source filename其實只是簡單地讀取腳本里面的語句依次在當前shell裏面執行,沒有創建新的子shell。那麼腳本里面全部新建、改變變量的語句都會保存在當前shell裏面。

 

舉例說明:

新建一個test.sh腳本,內容爲:A=1;

修改其可執行權限:chmod +x test.sh;

運行sh test.sh後,echo $A,顯示爲空,由於A=1並未傳回給當前shell;

運行./test.sh後,也是同樣的效果;

運行source test.sh 或者 . test.sh,而後echo $A,則會顯示1,說明A=1的變量在當前shell中;


shell - while死循環
while true
do
done

"true"是小寫!


shell cut命令:
將 PATH 變量取出,我要找出第一到第三,還有第五個路徑。

echo $PATH | cut -d ':' -f 1-3,5
/bin:/usr/bin:/sbin:/usr/local/bin
實用例子:只顯示/etc/passwd的用戶和shell

#cat /etc/passwd | cut -d ':' -f 1,7

 

2017/09/11
海南有線-server.conf 裏的db_name=cdb20
單體酒店:
安裝包路徑:192.168.88.46:/usr/local/pkgs/SYS/2.8.0.007.tar.gz
運營商:
安裝包地址:192.168.88.46:/usr/local/pkgs/sp/2.0.0.008.tar.gz

2017/09/12
sunboss- 頻道管理-模擬頻道配置的url是沒法導出的,配置了也沒用!

2017/09/13
1. gnm從cboss接口獲取整個cdn系統的拓撲結構,包含id爲1的NM節點和它的各級子節點;
2.

2017/09/14
求兩個文件的交集
cat 20170901 20170810 | sort | uniq -d

刪除文件內全部控制字符;
sed -i 's/[\x01-\x1F\x7F]//g' file.txt

2017/09/15
更新mysql字段:
update news set pictureurl=substring_index(pictureurl,'/',-1);


訪問酒店方式:
根據hostid推算 web端口跟ssh端口 規則:
若是 hostid 爲1000 ~ 1500, web端口 = hostid + 4000,ssh端口 = hostid + 4500
若是 hostid 大於2000, web端口 = hostid + 10000,ssh端口 = hostid + 20000

登陸的IP:192.168.88.80

sunboss的登陸帳號密碼,srmd sykj201609
ssh登陸帳號密碼,srmd srmd@sunlight@)!)

 

sed刪除空行:
sed -i '/^$/d' /usr/local/sunlight/conf/sunaudit.conf

 

vms_config.ini 增長配置:mp2pIp=管理口物理IP
gnm_config.ini 增長配置:mp2pIp=管理口邏輯IP
gslb_config.ini 增長配置:mp2pIp=管理口邏輯IP
nm_config.ini 增長配置:mp2pIp=管理口邏輯IP

 


2017/09/18
運營商深圳廣信管理服務器 200
運營商廣西南寧電信管理服務器 201
運營商河南聯通管理服務器 202
運營商湖北電信管理服務器 203


2017/09/19

阿里雲sunlight-server測試服務器登陸方式
ip: 121.199.51.81
root/Sunlight2016

select date(logintime),count(distinct(stbid)) from stbentrancerecord group by (date(logintime));


2017/09/20

https://192.168.88.58/ui/#/host/vms


2017/10/04
zypper repo:
zypper addrepo -fc http://download.opensuse.org/repositories/openSUSE:/Backports:/SLE-12/standard/openSUSE:Backports:SLE-12.repo
zypper addrepo -fc http://download.opensuse.org/repositories/openSUSE:/Backports:/SLE-12-SP1/standard/openSUSE:Backports:SLE-12-SP1.repo
zypper addrepo -fc http://download.opensuse.org/repositories/openSUSE:/Backports:/SLE-12-SP2/standard/openSUSE:Backports:SLE-12-SP2.repo

以上三條命令都要執行;

/usr/local/dstat/dstat -tcdmnfls -T --innodb-io --innodb-buffer --innodb-ops --fs --top-bio --top-mem

出門旅遊,防騙:
http://blog.sina.com.cn/s/blog_538557480102x4ew.html?tj=1


2017/10/05
ls -alth 顯示文件和目錄大小;
或者使用: du -sh *
列出home目錄全部文件大小的總和命令爲:du -s /home或du -sh /home
好比查找文件名爲backup.sh文件的大小,命令爲:du -s backup.sh ,ls -lh backup.sh

2017/10/09
啓動mariadb集羣第一個節點: galera_new_cluster

 

2017/10/10
drop event test_event_bbtsss;
delimiter //
CREATE EVENT `test_event_bbtsss` ON SCHEDULE EVERY 15 SECOND STARTS '2019-01-01 00:00:07'
DO BEGIN
UPDATE terminal SET isonline=0 WHERE isonline=1 AND TIMESTAMPDIFF(SECOND, lastupdatetime, UTC_TIMESTAMP()) >= 85;
END //
delimiter ;


UPDATE mysql.event SET status = 'SLAVESIDE_DISABLED';
alter event xxxx DISABLE ON SLAVE;


shell - if 多條件判斷, [[ "$tt" == "y" || "$tt" == "Y" ]]
注意等號兩邊要有空格;

201七、十、12
查看進程運行級別;
systemctl list-unit-files | grep ntpd

 


默認狀況下,系統中的應用崩潰的時候會使得核心調用 systemd-coredump 來生成相關內存鏡像以及一些調試信息。
若是該應用運行時佔用的內存大,那麼這些調試信息會很快佔滿硬盤空間。應用崩潰是很常見的事情,但通常用戶並不須要去調試它,
多數人也不知道怎麼調試。因此禁用它是個很好的選擇。

 

alter event event_name enable/disable;

2017/10/13
將awk輸出的多行轉爲一行字符串,而後使用grep查找處理;
遇到這種狀況,可使用args參數:

netstat -nltp | awk 'NR>2 {print $7}' | xargs | grep vms
或:
netstat -nltp | awk 'NR>2 {print $7}' | xargs -n1 | grep vms


2017/10/16
keepalived fatal module ip_vs not found
keepalived安裝完成後,須要開啓ip4轉發功能;

Maxscale登錄mysql卡頓現象:
skip-name-resolve


2017/10/18
使用inotify監控/var/www/html目錄,沒有效果;
但修改成/var/www/html/app 卻有效
根據檢查,是由於下面的緣由:
-r參數: 遞歸目錄, inotify,rsync都有

2017/10/19
Vim快速移動光標至行首和行尾
須要按行快速移動光標時,可使用鍵盤上的編輯鍵Home,快速將光標移動至當前行的行首。
除此以外,也能夠在命令模式中使用快捷鍵"^"(即Shift+6)或0(數字0)。
若是要快速移動光標至當前行的行尾,可使用編輯鍵End。也能夠在命令模式中使用快捷鍵"$"(Shift+4)。
與快捷鍵"^"和0不一樣,快捷鍵"$"前能夠加上數字表示移動的行數。例如使用"1$"表示當前行的行尾,"2$"表示當前行的下一行的行尾。


sunaudit生成的spid都要從10000開始;
今天出了故障,在熊軍環境變成了1;


nginx配置文件中添加, $request_body 便可顯示請求參數;

2017/10/24
mysqldump -u root -p --skip-create-options --all-databases > migration.sql
skip-create-options保證了導入數據的時候,用的默認存儲引擎,這樣一來,原來的MyISAM也會順利轉換爲InnoDB。

在集羣沒法正常啓動的狀況下,可以使用以下命令:
第一個節點:
sudo -u mysql mysqld --wsrep-cluster-address='gcomm://'
後面的:
sudo -u mysql mysqld --wsrep-cluster-address='gcomm://192.168.88.48'

2017/10/25
根據pid找到進程:
ps -p 進程號

 

2017/10/27
查詢數據庫中event狀態;
select event_schema,event_name,status from information_schema.events;

 

2017/10/31

備份:
rm -rf /tmp/backup/mysqldb
innobackupex --defaults-file=[MY.CNF] --user=bkpuser --password=xxxx --galera-info --no-timestamp /tmp/backup/mysqldb/
innobackupex --apply-log --use-memory=2G /tmp/backup/mysqldb/

寫入腳本內,用以生成壓縮包:

sudo -u mysql innobackupex --user=$sql_user --password=$sql_passwd --socket=/var/lib/mysql/mysql.sock --no-timestamp --stream=tar "$sql_home/" | gzip >  "$sql_home/${sql_backup_date}.tar.gz"


還原:
innobackupex --datadir=/var/lib/mysql --copy-back ./
chown mysql:mysql -R /var/lib/mysql

2017/10/31
發現 /var/lib/mysql/grastate.dat中,
seqno :-1
須要執行:
sudo -u mysql mysqld --wsrep-recover

 

ssh -p20203 192.168.88.80

2017/11/02

create user 'maxscale'@'%' identified by 'sunlight2017';
grant SELECT on mysql.user to 'maxscale'@'%';
GRANT SELECT ON mysql.db TO 'maxscale'@'%';
GRANT SELECT ON mysql.tables_priv TO 'maxscale'@'%';
GRANT SHOW DATABASES ON *.* TO 'maxscale'@'%';
grant REPLICATION CLIENT on *.* to 'maxscale'@'%';



2017/11/03

update imageauditrecord set imageurl=replace(imageurl,"182.247.239.156","192.168.88.168");

1. 解決陝西數據庫集羣的問題;
2. 出一個Checklist,對數據庫集羣作詳細檢查;
3. 作好trouble-shooting工做,將常見問題整理成冊;
4. 文件同步功能,觸發後若是因爲網絡緣由沒有執行成功,如何重試?

6. 集羣環境測試很重要!
7. 須要測試當掉進程和網卡,其餘節點的運行狀況;
8. 向數據庫集羣循環不斷寫入,隨機斷掉一個節點,須要測試故障狀況下集羣運行情況;


2017/11/04

ctrl+a:光標移到行首。
ctrl+e:光標移到行尾。

2017/11/05
grep -w pattern files:只匹配整個單詞,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’)

sys.path是python的搜索模塊的路徑集,是一個list
能夠在python 環境下使用sys.path.append(path)添加相關的路徑,但在退出python環境後本身添加的路徑就會自動消失了!


shell根據全路徑獲取目錄:
if [ ! -d ${log%/*} ];then
mkdir -p ${log%/*}
fi

keepalived notify_master 後面的腳本不執行,緣由: 目標執行腳本須要有可執行權限;


2017/11/07
子進程不能export出變量影響父進程的環境,好比,寫一個shell腳本,使用sh命令執行,裏面的變量是沒法在當前環境echo出來的;
但使用source卻能夠,由於沒有子進程產生,此時腳本中的export命令將會影響父進程的環境;

2017//11/08
1. keepalived notify_master 後面的腳本不執行,緣由: 目標執行腳本須要有可執行權限;


2017/11/16
陝西歡迎頁不能建立:
緣由:沒有安裝app!
歡迎頁建立要用到sagent

2017/11/17
運營商爬蟲已經合併進 2.0.2.005 在app裏面


2017/12/03

如何刪除大小爲0的文件

find . -size 0 -exec rm {} \;或find . -size 0 -exec rm -i {} \;

 

2017/12/15

SLES12SP2查看gnome版本號:

gnome-shell --version

 

2017/12/16

SLES12SP2安裝完成後,若是開啓了桌面(gnome-shell進程有內存溢出的bug),

可執行  init 3  關閉桌面

 

2017/12/18

shell腳本中使用awk統計單列數據和:

awk '{sum += $1};END {print sum}' test

2017/12/19

雲平臺擴展LVM空間命令:

pvcreate /dev/xvdb1
vgextend VG /dev/xvdb1


lvresize -L 100G /dev/VG/LV-content
resize2fs /dev/mapper/VG-LV--content


lvresize -L 100G /dev/VG/LV-mysql
resize2fs /dev/mapper/VG-LV--mysql


lvresize -L 50G /dev/VG/LV-weedfs
resize2fs /dev/mapper/VG-LV--weedfs


lvresize -L 50G /dev/VG/LV-log
resize2fs /dev/mapper/VG-LV--log


lvresize -L 100G /dev/VG/LV-home
resize2fs /dev/mapper/VG-LV--home


lvresize -L 50G /dev/VG/LV-www
resize2fs /dev/mapper/VG-LV--www


lvresize -L 50G /dev/VG/LV-opt
resize2fs /dev/mapper/VG-LV--opt

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

lvm縮減空間:

umount /dev/mapper/sunlight_vg-lv_docker
e2fsck -f /dev/mapper/sunlight_vg-lv_docker
resize2fs /dev/mapper/sunlight_vg-lv_docker 1G
lvreduce -L 1G /dev/mapper/sunlight_vg-lv_docker
mount /dev/mapper/sunlight_vg-lv_docker /var/lib/docker

 

 

2017/12/27

date命令,獲取最近幾天的日期:

 date  +"%Y%m%d" -d  "+n days"         今天的後n天日期  

 date  +"%Y%m%d" -d  "-n days"          今天的前n天日期
 
2018/01/07
 
在nginx配置文件中添加:
 
  autoindex on;
 
瀏覽器訪問時,才能展現web目錄和文件;
 
 2018/01/12
客戶端向web目錄發請求如("/"),若是目錄下沒有定義的index文件(index.htm, index.php等),會產生403錯誤;
 
2018/01/23
獲取字符串長度的方法:
1). echo ${#string}
2). echo $string | wc -L
 
2018/02/02
判斷一臺服務器是否支持虛擬化:
egrep '(vmx|svm)' /proc/cpuinfo
 
2018/06/26

grep -A :顯示匹配行和以後的幾行
簡單翻譯就是,-A -B -C 後面都跟阿拉伯數字,-A是顯示匹配後和它後面的n行。-B是顯示匹配行和它前面的n行。-C是匹配行和它先後各n行。
整體來講,-C覆蓋面最大。用它保險些。哈哈。這3個開關都是關於匹配行的上下文的(context)。

 

2).

Shell命令獲取文本文件指定行數
從第3000行開始,顯示1000行。即顯示3000~3999行
cat filename | tail -n +3000 | head -n 1000
顯示1000行到3000行
cat filename| head -n 3000 | tail -n +1000

*注意兩種方法的順序

分解:

tail -n 1000:顯示最後1000行

tail -n +1000:從1000行開始顯示,顯示1000行之後的

head -n 1000:顯示前面1000行

用sed命令

sed -n '5,10p' filename 這樣你就能夠只查看文件的第5行到第10行

 

3).在生成log日誌時,必定要考慮日誌文件大小,日久天長

 

4).

邊緣節點: edge -d n2nedge0 -a 10.0.0.12 -c n2nedge -k sunlight-tech.com -l ip:11000 -M 1200
中心節點: supernode -l 11000

5).

保留20個文件,其他刪除

find /home/mysql -name "*.tar.gz" | xargs ls -lt | awk 'NR > 20 {print $9}' | xargs rm -rf

6).

find 搜索目錄,排除自身:

find /home/weedfs/ -not -path /home/weedfs/ -type d -exec rm -rf {} \;

7).

對目錄來講x 可執行權限就是用戶擁有進入該目錄、複製其中文件的權限。
對於文件的rwx比較好理解,對於目錄來講具備r權限的身份能夠利用ls查看該目錄下的文件名列表,不能查看文件的詳細信息,
具備x權限的身份能夠利用cd進入該目錄做爲本身的工做目錄,在這個目錄中,你能夠訪問、修改你有權限的文件。
因此對於目錄來講,有r權限沒有x權限是沒法進入目錄的,只有r權限,不開放x權限基本沒有什麼意義,因此須要讀取文件夾時最好將x權限也加上。

8).

tcpdump 抓包:
tcpdump -i eth0 -s 0 dst host 172.16.50.38 -w ./dump.cap

9).

壓縮命令:
tar -zcvPf www.tar.gz -C /var/ www (注意www前有空格)
解壓:
tar -zxvf www.tar.gz (解壓到當前目錄)
tar -zxvf www.tar.gz -C /var/www (解壓到指定目錄)
解壓包中的部分目錄到指定目錄:
tar -zxv -C /var/tmp -f www.tar.gz www/html/ihotel_hd_01

10).

去掉字符串中的空格:
$(echo $2 | sed s/[[:space:]]//g)

11).

loginctl命令用於查看當前登陸的用戶。


# 列出當前session
$ loginctl list-sessions

# 列出當前登陸用戶
$ loginctl list-users

# 列出顯示指定用戶的信息
$ loginctl show-user ruanyf

12).

向文件最後一行後,插入空行;
sed -i '$G' file

13).

linux shell中判斷目錄是否爲空

#!/bin/sh
##方法一 判斷輸出字符數統計爲0
is_empty_dir(){
return `ls -A $1|wc -w`
}
##方法二 判斷輸出string爲空
#is_empty_dir(){
# return $[ -z `ls -A $1` ]
#}

if is_empty_dir $1
then
echo " $1 is empty"
else
echo " $1 is not empty"
fi

14).

壓縮目錄:
tar -zcvf www.tar.gz /var/www
解壓縮:
tar -zxvf www.tar.gz -C / var (var前面有空格)

15).

curl命令結果不顯示統計信息% Total % Received %
-----使用curl的-s 選項便可

16).

將shell命令執行結果再處理,避免出現子進程的方法是:
while read line
do
done<< EOF
`commdon`

EOF

17).

wsrep_string=$(mysql -u${sp_mysqld_user} $pwd_string -e "show status like 'wsrep_%';")
cluster_status=$(echo "$wsrep_string" | grep "wsrep_cluster_status" | cut -f 2)

18).

#將某命令的輸出結果賦值給一個變量 a#若是使用 echo $a 輸出變量,則變量中的 換行都會被忽略掉,全部內容輸出到一行#而使用 echo "$a" 可正常輸出變量中的換行

相關文章
相關標籤/搜索