作者:AngryFox 分类: Uncategorized July 22nd, 2018 暂无评论

可能是你的脚本文件是DOS格式的, 即每一行的行尾以\r\n来标识, 其ASCII码分别是0x0D, 0x0A。可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是MAC格式的。

(1). vi filename
然后用命令
:set ff?
可以看到dos或unix的字样. 如果的确是dos格式的, 那么你可以用 set fileformat=unix 把它强制为unix格式的, 然后存盘退出. 再运行一遍看.

(2)也可以用sed 这样的工具来做:
sed ‘s/^M//’ filename > tmp_filename
mv -f tmp_filename filename
来做
特别说明:^M并不是按键shift + 6产生的^和字母M, 它是一个字符, 其ASCII是0x0D, 生成它的办法是先按CTRL+V, 然后再回车(或CTRL+M)

========================================

网上的另一篇帖子,供参考:

-Bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory

VI打开文件,没发现任何问题,

把/bin/bash改成/bin/sh

-bash: ./test.sh: /bin/sh^M: bad interpreter: No such file or directory

依然报错,脚本内容在VI下没有任何问题,仔细一看错误消息,^M..明显在第一行末尾被加入了个^M,

这种情况应该有两种原因

1.在WIN底下用文本编辑工具修改过参数变量,在保存的时候没注意编码格式造成的,

2.也有可能是在VIM里修改,第一行末尾按到ctrl_v

错误原因之一很有可能是你的脚本文件是DOS格式的, 即每一行的行尾以\r\n来标识, 其ASCII码分别是0x0D, 0x0A.
可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是MAC格式的
(1). vi filename
然后用命令
:set ff?
可以看到dos或unix的字样. 如果的确是dos格式的, 那么你可以用set ff=unix把它强制为unix格式的, 然后存盘退出. 再运行一遍看.

2.可以用执行dos2unix 命令转换编码

#dos2unix myShell.sh

3..也可以用sed 这样的工具来做:
sed ‘s/^M//’ filename > tmp_filename
mv -f tmp_filename filename
来做
特别说明:^M并不是按键shift + 6产生的^和字母M, 它是一个字符, 其ASCII是0x0D, 生成它的办法是先按CTRL+V, 然后再回车(或CTRL+M)

关于^M

new line of DOS/Windows

new line of dos/win: 0X0d0a
new line of Linux/unix: 0X0a

作者:AngryFox 分类: Uncategorized July 22nd, 2018 暂无评论

在mysql中很多朋友都认为字段为AUTO_INCREMENT类型自增ID值是无法修改,其实这样理解是错误的,下面介绍mysql自增ID的起始值修改与设置方法。
通常的设置自增字段的方法:
创建表格时添加:

复制代码代码如下:

create table table1(id int auto_increment primary key,…)

创建表格后添加:
复制代码代码如下:

alter table table1 add id int auto_increment primary key 自增字段,一定要设置为primary key.

许多时候希望table中数据的id不要从1开始,像qq, id从10000开始
代码如下:
复制代码代码如下:

alter table users AUTO_INCREMENT=10000;

而且该语句也适用于修改现有表的id上, 比如大批量删除数据后,想id从654321退回123456开始
复制代码代码如下:

alter table users AUTO_INCREMENT=123456;

但是经过实际测试, 单机的Mysql没有问题, Mysql Cluster下是无效的,可能在主键上的机制,还是有所不同,有时间研究一下
在Rails migration中的写法如下:

复制代码代码如下:

create_table :articles, :o ptions => ‘AUTO_INCREMENT = 1001′ do |t|
# xxx todo
end
设置自增ID从N开始

复制代码代码如下:

CREATE TABLE TABLE_1 ( ID INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, // ID列为无符号整型,该列值不可以为空,并不可以重复,而且自增。 NAME VARCHAR(5) NOT NULL ) AUTO_INCREMENT = 100;(ID列从100开始自增)

如果想让自增ID从默认值开始只要
复制代码代码如下:

TRUNCATE TABLE table1

作者:AngryFox 分类: Uncategorized July 14th, 2018 暂无评论

crontab默认编辑器为nano
修改crontab默认编辑器为vi或者其他的编辑器
可以用命令select-editor修改
改为3或者4
再用crontab -e
就是vim打开了

作者:AngryFox 分类: Uncategorized July 10th, 2018 暂无评论

什么是USDT
本文中,我们介绍Tether公司利用bitcoin区块网络构造的omni layer,在这个overlay network上各方可以发行token,tether公司在omni layer上发行了代号为USDT的token, 1:1锚定美元。
tether的思想很简单,大家把美元给我,给我1美元,我发行1USDT,美元存放到指定的资产账户,大家都可以查询,发行的USDT总量也可以在区块上进行查询。当兑换的时候,给我1USDT,我返还1美元。

当然,其中的经济学方面的事情就先不讲了,可以说,tether提供了一条数字资产与法币相连接的通道,至于USDT是否靠谱,是否是骗局,这个仁者见仁智者见智,我们只对其技术进行讲解。

Omni Layer节点的安装
Tether的钱包是以bitcoin区块网络为基础的,在这个网络上面搭建了名为Omni Layer的共识网络,其主要的思想是对bitcoin的区块进行染色,写入需要存储的数据。

2.1 依赖环境。

同bitcoin。可以参见区块链学习笔记(零)

2.2 源码编译

git clone https://github.com/OmniLayer/omnicore.git
cd omnicore/
./autogen.sh
./configure
make

2.3 运行与区块同步

编译完成之后,在omnicore/src/会有omnicored, omnicore-cli等可执行文件。其来执行方式与bitcoin一样,需要一个名为bitcoin.conf的配置文件。启动命令如下所示:

./omnicored -conf=%PATH TO bitcon.conf% -datadir=%PATH TO DATA DIR% &
启动之后,可以在%datadir%/omnicore.log下面查看日志。

omni同步区块,并不需要把bitcoin区块全部下载,大致一天之内就能够同步完毕。之后,我们就可以使用omnicore-cli命令,或者通过RPC API对节点和钱包进行操作。

2.4 JSON-RPC API

omni的JSON-RPC API与bitcoin的完全相同,使用的时候只是相当于将bitcoin的命令集进行了扩展。
具体的JOSN-RPC API可以查询这里。

二次开发过程中,可以使用原有的bitcoin的JSON-RPC API包进行开发。例如,使用EasyBitcoin-PHP.

//使用EasyBitcoin 对omnicore 进行JSON-RCP api操作
include_once "easybitcoin.php";
$bitcoin = new Bitcoin("rpc-user","rpc-pass");
var_dump($bitcoin->getinfo());
//查询$address上USDT(property id = 31)余额
var_dump($bitcoin->omni_getbalance($address,31));

OmniCore启动可以配置一个或多个可选命令参数,如下:
$omnicored -setting=value -setting=value
所有的设置可以通过bitcoin.conf进行配置。
一个常规的bitcoin.conf如下:

server=1
rpcuser=omnicorerpc
rpcpassword=5hMTZI9iBGFqKxsWfOUF
rpcallowip=127.0.0.1
rpcport=8332
txindex=1
datacarriersize=80
logtimestamps=1
omnidebug=tally
omnidebug=packets
omnidebug=pending

./omnicored -conf=/home/omnicore/bitcoin.conf -datadir=/home/omnicore/ -txindex    

tail -f /home/omnicore/debug.log 可以查看当前同步到的区块。

42 packages can be updated.
18 updates are security updates.

sudo apt-get update && sudo apt-get dist-upgrade

路由冲突无法外部无法ping通ip

root@ubuntu:/home/administrator# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         185.221.134.249 0.0.0.0         UG    0      0        0 eno1
156.233.42.0    156.233.42.1    255.255.255.0   UG    0      0        0 eno2
156.233.42.0    *               255.255.255.0   U     0      0        0 eno2
156.233.42.0    *               255.255.255.0   U     0      0        0 eno1
localnet        *               255.255.255.248 U     0      0        0 eno1
root@ubuntu:/home/administrator# route del -net 156.233.42.0 netmask 255.255.255.0
root@ubuntu:/home/administrator# route del -net 156.233.42.0 netmask 255.255.255.0
root@ubuntu:/home/administrator# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         185.221.134.249 0.0.0.0         UG    0      0        0 eno1
156.233.42.0    *               255.255.255.0   U     0      0        0 eno1
localnet        *               255.255.255.248 U     0      0        0 eno1
作者:AngryFox 分类: Uncategorized June 26th, 2018 暂无评论

一,从官网下载go源码

对于64位的Linux
$ wget https://storage.googleapis.com/golang/go1.9.1.linux-amd64.tar.gz
对于32位的Linux

$ wget https://storage.googleapis.com/golang/go1.9.1.linux-386.tar.gz

具体查看Go 的官网:https://golang.org/dl/

在/usr/local下安装程序

$ sudo tar -xzf go1.9.1.linux-amd64.tar.gz -C /usr/local

配置全局变量

$ sudo gedit ~/.bashrc
在文件添加以下两行信息

export GOPATH=/usr/local/go
export PATH=$GOPATH/bin:$PATH

使修改生效

# source ~/.bashrc
export GOROOT=/usr/local/go
export GOPATH=$PATH:$GOROOT/bin

验证

go version
go version go1.9.1 linux/amd64

作者:AngryFox 分类: Uncategorized June 5th, 2018 暂无评论

批量生成
# !/bin/bash
for ((i=3;i<=255;i=i+1))
do
echo "auto eno2:$i">>/root/x.text
echo “iface eno2:$i inet static”>>/root/x.text
echo “address 156.233.42.$i”>>/root/x.text
echo “netmask 255.255.255.0″>>/root/x.text
echo ” “>>/root/x.text
done
# end

第二种方法:修改网卡配置文件

在ubuntu下,网卡的配置文件是/etc/network/interfaces,所以我们修改它:

sudo gedit /etc/network/interfaces

照eth0添加eth0:0

auto eth0
iface eth0 inet static
name Ethernet Lan card
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.1
broadcast 192.168.1.255
gateway 192.168.1.254

auto eth0:0
iface eth0:0 inet static
name Ethernet Lan card
address 192.168.1.3
netmask 255.255.255.0
network 192.168.1.1
broadcast 192.168.1.255
gateway 192.168.1.254

然后重启服务

sudo /etc/init.d/networking restart

测试新的ip地址

ping 192.168.1.2
ping 192.168.1.3

作者:AngryFox 分类: Uncategorized May 6th, 2018 暂无评论

注意:有些符号被数据库过滤 安装时手工修改

安装autoconf\automake\libtool:
安装autoconf(version>=2.64):
  wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
  tar -zxvf autoconf-2.69.tar.gz
  cd autoconf-2.69
  ./configure
  gmake
  gmake install
安装automake:
  wget http://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz
  tar -zxvf automake-1.15.tar.gz
  cd automake-1.15
  ./configure
  gmake
  gmake install
安装libtool:
  wget http://ftpmirror.gnu.org/libtool/libtool-2.4.6.tar.gz
  tar -zxvf libtool-2.4.6.tar.gz
  cd libtool-2.4.6
  ./configure
  gmake
  gmake install

安装g++\升级gcc支持c++11\安装pkg-config:

安装g++:yum -y install gcc gcc-c++
升级gcc支持c++11:
  wget http://mirrors.ustc.edu.cn/gnu/gcc/gcc-4.8.1/gcc-4.8.1.tar.gz
  tar -zxvf gcc-4.8.1.tar.gz
  cd gcc-4.8.1
  ./contrib/download_prerequisites
  cd ../
  mkdir gcc-build-4.8.1
  cd gcc-build-4.8.1/
  ../gcc-4.8.1/configure –enable-checking=release –enable-languages=c,c++ –disable-multilib
  make -j4
  make install
安装pkg-config:
  wget https://pkg-config.freedesktop.org/releases/pkg-config-0.25.tar.gz –no-check-certificate
  tar -zxvf pkg-config-0.25.tar.gz
  cd pkg-config-0.25
  ./configure
  gmake
  gmake install

安装BerkeleyDb:

Berkeley DB要安装4.8版本

wget http://download.oracle.com/berkeley-db/db-4.8.30.tar.gz
tar -xzvf db-4.8.30.tar.gz
cd db-4.8.30/build_unix
../dist/configure –enable-cxx –disable-shared –with-pic –prefix=/usr/local
make install
安装boost:

//boost别安装1.66版本,上面的boost版本没法编译上面的比特币源码,有个模板的参数发生了变化,要用老版本。因为默认安装在/usr/local下面,所以把boost相关的头文件和库文件删除即可,然后再重新安装。
yum install python-devel
下载https://dl.bintray.com/boostorg/release/1.64.0/source/boost_1_64_0.tar.gz
tar -zxvf boost_1_64_0.tar.gz
cd boost_1_64_0
./bootstrap.sh
./b2
./b2 install
升级openssl:

wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz
tar -zxvf openssl-1.0.2l.tar.gz
cd openssl-1.0.2l
CFLAGS=-fPIC ./config shared
gmake
gmake install
echo “export PKG_CONFIG_PATH=/usr/share/pkgconfig:/usr/local/ssl/lib/pkgconfig” >> /etc/profile
source /etc/profile
mv /usr/bin/openssl /usr/bin/openssl.bak
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
ln -s /usr/local/ssl/lib/libssl.so /usr/lib64/libssl.so
安装libevent:

libevent要安装libevent2-devel版本
yum search libevent2-devel.x86_64
下载https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz
tar -zxvf libevent-2.1.8-stable.tar.gz
cd libevent-2.1.8-stable
./configure
gmake
gmake install
echo “export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig” >> /etc/profile
source /etc/profile
编译bitcoin源代码:

安装git:yum -y install git
从github克隆源代码仓库:git clone https://github.com/bitcoin/bitcoin.git
签出最新发布版代码:
  cd bitcoin/
  git tag
  git checkout v0.15.0rc3

ACLOCAL_PATH=/usr/local/share/aclocal ./autogen.sh
./configure
gmake
gmake install
//;chmod +x ./autogen.sh;chmod +x ./share/genbuild.sh;./autogen.sh;./configure –without-gui –disable-tests –disable-gui-tests –disable-bench;cd src;make;./momod;

常见问题
1.编译PCL的时候,cmake的时候出现cannot find Boost libraries
system
filesystem
thread
date_time
iostreams
chrono

解决办法:
1.首先分析,既然找不到,那么是没有安装这个文件呢,还是有这个文件但是编译的时候找不到呢?

首先去判断是否已经有文件存在.
locate boost_system
没有的话就去下载
mkdir -p /mnt/x
mv /usr/lib64/libboost* /mnt/x/
ln -s /usr/local/lib/libboost_program_options.so.1.64.0 /usr/lib64/libboost_program_options-mt.so
ln -s /usr/local/lib/libboost_thread.so /usr/lib64/libboost_thread-mt.so

2.取消旧版本 boost软链接
删除软链接 确实是用rm 但是!!!
rm -fr xxxx/ 加了个/ 这个是删除文件夹
rm -fr xxxx 没有/ 这个是删除软链接

3./lib64/libstdc++.so.6: version `GLIBCXX_3.4.20′ not found问题解决方法
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
发现少了GLIBCXX_3.4.20,解决方法是升级libstdc++.
yum provides libstdc++.so.6
yum install libstdc++-4.8.5-11.el7.i686
1)、从路径/usr/local/lib64拷贝文件libstdc++.so.6.0.20到路径/usr/lib64
2)、删除/usr/lib64原来的libstdc++.so.6 #强烈建议删除之前先备份一份
3)、重新建立软连接ln libstdc++.so.6.0.20 libstdc++.so.6
4)、重新执行strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

原文

https://www.jianshu.com/p/56c9c63dbe8d

作者:AngryFox 分类: Uncategorized April 25th, 2018 暂无评论

ubuntu开启 3306
iptables -I INPUT 4 -p tcp -m state –state NEW -m tcp –dport 3306 -j ACCEPT

1. 安装指令
sudo apt install software-properties-common
sudo apt-key adv –recv-keys –keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository ‘deb [arch=amd64,i386,ppc64el] http://mirrors.tuna.tsinghua.edu.cn/mariadb/repo/10.2/ubuntu xenial main’

sudo apt update
sudo apt install mariadb-server

2. 查看sourcelist.
sudo vi /etc/apt/sources.list

3. 无法连接Mariadb的问题
Ubuntu 彻底删除 MYSQL 然后重装 MYSQL

sudo apt-get install apt-transport-https
删除 mysql

sudo apt-get autoremove –purge mysql-server-5.0
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common //这个很重要
上面的其实有一些是多余的。

清理残留数据
dpkg -l |grep ^rc|awk ‘{print $2}’ |sudo xargs dpkg -P

安装 mysql
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install php5-mysql
// 安装php5-mysql 是将php和mysql连接起来
一旦安装完成,MySQL 服务器应该自动启动。您可以在终端提示符后运行以下命令来检查 MySQL 服务器是否正在运行:
sudo netstat -tap | grep mysql
当您运行该命令时,您可以看到类似下面的行:

tcp 0 0 localhost.localdomain:mysql *:* LISTEN -

如果服务器不能正常运行,您可以通过下列命令启动它:

sudo /etc/init.d/mysql restart

进入mysql

$mysql -uroot -p 管理员密码

配置 MySQL 的管理员密码:
sudo mysqladmin -u root password newpassword

sudo apt-get update
sudo apt-get install mysql-server mysql-client
sudo apt-get -f install
sudo service mysql restart

作者:AngryFox 分类: Uncategorized April 18th, 2018 暂无评论

#centos升级gcc到4.8.1(支持c++11)步骤

##下载gcc最新版

wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.1/gcc-4.8.1.tar.gz
然后解压到文件夹

tar -xvzf gcc-4.8.1.tar.gz
进入解压缩之后的目录

cd gcc-4.8.1
然后执行下面的运行

./contrib/download_prerequisites
再返回上一层,建立build_gcc_4.8.1目录,这个目录和gcc-4.8.1平行

cd ..
mkdir build_gcc_4.8.1
进入刚建立的目录,并执行编译过程

cd build_gcc_4.8.1
../gcc-4.8.1/configure –enable-checking=release –enable-languages=c,c++ –disable-multilib
make -j23
make install
OK,在build_gcc_4.8.1中将gcc已经安装完成

确定新安装的GCC的路径,之前安装时记下最后mv时的路径即可,我是默认安在了/usr/local/bin

ls /usr/local/bin | grep gcc
看图

执行

/usr/sbin/update-alternatives –install /usr/bin/gcc gcc /usr/local/bin/x86_64-unknown-linux-gnu-gcc-4.8.1 40

gcc –version #查看版本

/usr/sbin/update-alternatives –install /usr/bin/g++ g++ /usr/local/bin/g++ 40

g++ –version #查看版本
来源:http://lonelyprogram.blog.51cto.com/6246243/1355261