20240326

清除CRON JOB產生的MAIL

這東西在這五年來竟然吃了我150G的空間
清出來好舒爽呀


#將CORN寄給ROOT的信停了
vi /etc/crontab
MAILTO=root -> MAILTO=""
service crond restart

#清除檔案,如果檔案多會跑一陣子
cd /var/spool/postfix/maildrop
ls | xargs rm -rf

20240131

換網址不換頁


history.pushState(state,title,url);

//state 設置該筆瀏覽歷程記錄所儲存的狀態物件 可為null
//title 設置該筆瀏覽頁面的title,部分瀏覽器不支援 可為null 
//url 新的 URL 不一定需要為一個絕對的路徑;如果是相對路徑,會依據目前的URL來解析。
// 新的 URL 需要與目前 URL 的 origin 是一樣的; 否則,pushState() 會丟出一個錯誤的例外。
// 這個參數是選擇性的; 如果沒有被指定的話,他會設定為目前文件的 URL。 可為null
// 範例
history.pushState(state,title,'/click/me.html');

// 使用方式同上
history.replaceState();

20240126

SSH 一直被掃 , 把IP進黑名單

tail -f /var/log/secure
就會看到一堆在測帳密的LOG
把這些擋掉吧

*/1 * * * * sh /root/deny.sh


#! /bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.txt
for i in `cat /usr/local/bin/black.txt`
do
  IP=`echo $i |awk -F= '{print $1}'`
  NUM=`echo $i|awk -F= '{print $2}'`
    if [ $NUM -gt 5 ];then
      grep $IP /etc/hosts.deny > /dev/null
      if [ $? -gt 0 ];then
      echo "sshd:$IP:deny" >> /etc/hosts.deny
      fi
    fi
done



last:這個命令可用於查看我們系統的成功登錄、關機、重啟等情況;這個命令就是將/var/log/wtmp檔案格式化輸出。

lastb:這個命令用於查看登錄失敗的情況;這個命令就是將/var/log/btmp檔案格式化輸出。

lastlog:這個命令用於查看使用者上一次的登錄情況;這個命令就是將/var/log/lastlog檔案格式化輸出。

who:這個命令使用者查看當前登錄系統的情況;這個命令就是將/var/log/utmp檔案格式化輸出。

20230414

ping localhost時出現::1的解決方法

netsh int ipv6 set prefix ::ffff:0:0/96 40 1
netsh int ipv6 set prefix 2002::/16 30 2
netsh int ipv6 set prefix 2001::/32 20 3
netsh int ipv6 set prefix ::1/128 10 4
netsh int ipv6 set prefix ::/0 5 5

20220203

CentOS 7 以太坊Ethereum環境建置 Geth


更新
yum update -y && yum install git wget bzip2 vim gcc-c++ ntp epel-release nodejs -y

git 要更新至2.X版

安裝go-ethereum
# 在這裡要先安裝Golang,待會需要編譯用
wget https://studygolang.com/dl/golang/go1.11.5.linux-amd64.tar.gz
# 解壓縮golang  
tar zxvf go1.11.5.linux-amd64.tar.gz
# 搬移go到local下  
mv go /usr/local


# 配置GOROOT和PATH   
echo "export GOROOT=/usr/local/go" >> /etc/profile
echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile
source /etc/profile


# 下載go-ethereum  
git clone https://github.com/ethereum/go-ethereum.git
cd go-ethereum
make all


# 完成後在path中入geth路徑  
echo "export PATH=$PATH:/root/go-ethereum/build/bin" >> /etc/profile  
source /etc/profile  


安裝cmake:智能合約編譯solc需cmake編譯
下載cmake最新版本
cd && wget https://cmake.org/files/v3.14/cmake-3.14.5.tar.gz
解壓並編譯並安裝
tar -xzvf cmake-3.14.5.tar.gz
cd cmaker-3.14.5
./bootstrap --prefix=/usr/local
make && make install


網路時間同步
systemctl enable ntpd
systemctl start ntpd


防火牆port 
firewall-cmd --zone=public --add-port=8545/tcp --permanent
firewall-cmd --zone=public --add-port=30303/tcp --permanent
firewall-cmd --reload
Ethereum 節點 - 30303
RPCapi - 8545
–permanent為永久設定,否則防火牆重新啟動時將會失效


建立創世區塊文件
在go-ethereum/build/bin目錄下建立創世區塊文件init.json檔,內容如下

{
  "config": {
    "chainId": 666,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "istanbulBlock": 0,
    "ethash": {}
  },
  "nonce": "0x0",
  "timestamp": "0x5ddf8f3e",
  "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "gasLimit": "0x47b760",
  "difficulty": "0x00002",
  "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x0000000000000000000000000000000000000000",
  "alloc": { },
  "number": "0x0",
  "gasUsed": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}

創世區塊初始化
請在ethereum/build/bin下操作


# 請注意,這是自行架設的私有鏈才需要初始化
# 公有鏈不需操作此步驟
geth --datadir "/data/eth/chain" init init.json
/data/eth/chain,建立資料位置可自行更換,建立前請先確保磁碟容量足夠,以及初始化文件名稱要和剛剛建立的必須一致

以太坊啟動
geth --http --http.api db,eth,net,web3,personal --datadir .\db --networkid 1997 console 2>> eth.log
端口:以太坊網絡監聽端口,默認指定為30303
http:開啟HTTP-RPC服務,可以進行智能合約的部署和測試
http.api:基於HTTP-RPC提供的API
http.addr:指定HTTP-RPC服務監聽地址,默認為localhost
http.port:HTTP-RPC服務監聽端口指定號,默認為8545
網絡ID:指定以太坊網絡的ID為代表公用網絡啟動ID,因此我們為密碼鏈創建密碼鏈,因此指定密碼鏈的起源。
控制台:啟動模式
eth.log:控制器,記錄日誌


如果有看到Welcome to the Geth JavaScript console!的字樣,私有鏈就算架設完成囉~

開啟第二個Console畫面
基本上啟動以太坊一定是Server端啟用,所以如果在其他電腦上也想進入Console畫面,就要Remote進去

# 本機連接節點
geth attach http://localhost:8545

# 遠端連接節點
geth attach http://remote_ip:8545