树莓派新装Centos后环境搭建

  1. 设置代理,参考 (记得重启)
    https://blog.mytlu.cn/?p=85
  2. 安装 yum-config-manager:
    yum -y install yum-utils 
  3. 设置静态IP
    https://blog.mytlu.cn/?p=89
  4. 配置SSH转发
    https://blog.mytlu.cn/?p=6
  5. 扩展硬盘空间,直接使用以下命令:rootfs-expand
  6. 安装以下组件
yum install -y wget lrzsz gcc openssl openssl-dev zlib* httpd \
php-pdo \
php-gd  \
php-bcmath  \
php-common  \
python2-cryptography  \
plymouth-graphics-libs  \
php \
php-ldap \
php-xml \
php-cli \
hyphen  \
libgphoto2  \
gvfs-gphoto2  \
php-mysqlnd  \
php-fpm  \
graphite2 \
php-mbstring  \
php-xmlrpc \
Mariadb Mariadb-server \
vim\
zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make \
libffi-devel

7. 安装Python3

wget https://mirror.fastspeedgo.xyz/python-383/Python-3.8.3.tgz

tar xzvf Python-3.8.3.tgz && cd Python-3.8.3

./configure –prefix=/usr/local/python

make && make install

ln -s /usr/local/python/bin/python3.8 /usr/bin/python3
ln -s /usr/local/python/bin/pip3.8 /usr/bin/pip3

8. 设置时区:

timedatectl set-timezone Asia/Shanghai

9. 设置免密登录

生成密钥对:

ssh-keygen -t rsa -P “” -f “/root/.ssh/id_rsa”

拷贝 id_rsa.pub  到想要免密登录的服务器相应用户的~/.ssh/authorized_keys文件里,文件权限600.

10. SSH穿透 ,将SSH 22端口映射到公网 27280,另外,映射80端口到公网4340。

cd /tmp  && wget https://mirror.fastspeedgo.xyz/raspberryMirror/autossh-1.4g-1.el7.armv7hl.rpm && yum install -y autossh-1.4g-1.el7.armv7hl.rpm
vi /usr/lib/systemd/system/ssh-retransfer-80to4340.service
内容如下:
[Unit]
Description=Transfer local 80 port to remote 4340
After=network-online.target
[Service]
User=root
Type=simple
ExecStart=/usr/bin/autossh -M 5178 -NR 4340:localhost:80 -i /root/.ssh/id_rsa [email protected] -p 27278 >> /dev/null 2>&1
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -TERM $MAINPID
KillMode=process
Restart=no
[Install]
WantedBy=multi-user.target
WantedBy=graphical.target



vi /usr/lib/systemd/system/ssh-retransfer-to-mytlu.cn.service
内容如下:
[Unit]
Description=SSH transfer
After=network-online.target
[Service]
User=root
Type=simple
ExecStart=/usr/bin/autossh -M 5690 -NR 27280:localhost:22 -i /root/.ssh/id_rsa [email protected] -p 27278 >> /dev/null 2>&1
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -TERM $MAINPID
KillMode=process
Restart=no
[Install]
WantedBy=multi-user.target
WantedBy=graphical.target


systemctl enable ssh-retransfer-80to4340
systemctl enable ssh-retransfer-to-mytlu.cn
systemctl start ssh-retransfer-to-mytlu.cn
systemctl start ssh-retransfer-80to4340

11. 升级:

yum -y update

12. 安装zabbix客户端

cd /tmp && wget https://mirror.fastspeedgo.xyz/raspberryMirror/zabbix-4.0.20.tar.gz

tar xzvf zabbix-4.0.20.tar.gz && cd zabbix-4.0.20

groupadd zabbix
useradd -g zabbix zabbix
./configure --enable-agent
make install
vi /usr/local/etc/zabbix_agentd.conf
修改上述文件里的Server/ ServerActive/EnableRemoteCommands
zabbix_agentd

12. 内网,关闭防火墙

systemctl disable firewalld
systemctl stop firewalld

13. 解决SSH一会断开问题:

修改/etc/ssh/sshd_config配置文件,设置ClientAliveCountMax值大一点,我改为30,单位是分钟。然后重启ssh服务使生效:service sshd reload 

至此,完毕。

随笔__新增树莓派4B

新上了一台树莓派4B,折腾了一番,把数据库、PHP、Python3、Zabbix agent等环境都装好了后,想折腾折腾,在nmtui 里想试试连接wifi,结果不小心把有线网连接给关闭了。现在抽风中。树莓派4B使用 Micro HDMI,淘宝买了转接线。等线回来连上去再启用网络吧。

更新:把内存卡拿下来,插入另外一个树莓派,挂在上去添加网卡配置文件,再插入树莓派,网络恢复正常。

步骤1:挂载

插入树莓派usb 口,fdisk -l 可以看到多了一个 /dev/sda,里面三个分区,最后一个/dev/sda3应该就是原服务器的/分区.因此,创建挂载点 mkdir /mnt/usb,然后挂载 mount /dev/sda3 /mnt/usb。这个时候应该就挂载好了。

步骤2:修改文件,重载到树莓派上。

cd /mnt/usb/etc/sysconfig/network-scripts,然后我看了下,根本没有什么ifcfg-enth0类似这样的文件,我只看到了ifcfg-lo文件,这是回环地址。我决定新建entho0网卡,但是不确定文件需要什么样的权限,因此直接拷贝ifcfg-lo文件,然后修改内容。

cp ifcfg-lo ifcfg-enth0 && echo ” >ifcfg-enth0

编辑并保存ifcfg-enth0文件,内容如下:

TYPE=Ethernet
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.66.115
GATEWAY=192.168.66.1
NETMASK=255.255.255.0
DNS1=192.168.66.1
ONBOOT=yes


umount  /mnt/usb

树莓派开机!成功连接IP。

有一说一,这代树莓派真不错,350入手。4核 1.5 GHz 主频加4G内存,开个机仅占用300M左右。然后买了三星120G内存卡,据说读写能均能达到近100M,没烤机测试。俩个Micro HDMI,支持4K输出。就是买的时候不带风扇,空跑温度都50°+了,我的树莓派3B因为加了风扇,满载才37°。

上图!

Linux/CentOS设置全局代理(http)

转载来源:
https://www.cnblogs.com/daijiabao/p/11358743.html

说明:为什么说是http代理,其实这个还不能说是全称走代理,最明显的区别就是ICMP协议这个设置就无效,只能说是90%的应用都可以使用这个设置来实现代理访问,只有个别不行,比如一些软件根本不走http协议的,那么此种方法绝对不行;下面是讲解http的代理配置,以后会讲解全局级别的代理实现,其实也就是网关,配置网关绝对能100%,这里不做讲解。全局代理配置主要在于环境变量的设置。

还有网上很多都说http配置代理不支持socks协议,其实是不对的。我测试的结果已经支持了。

个人理解:我谈一下这个http_proxy的设置,首先,设置了这个变量不是说只会走http协议,上面我说的应该是普通认为会这样说的说法,我后面觉得上面已经是错误了,比如curl,git这些软件默认使用http_proxy这个环境变量来设置代理服务器,所以在linux下只要设置了这个环境变量就能被这些软件识别,而对于代理服务器用什么协议都行,比如使用http协议或者socks协议等。

那么对于一些比如chrome和yum这些针对http_proxy可能不会生效,比如chrome用的是server_proxy这个变量,而且是在启动时设置才生效。

下面是代理变量的配置:

环境变量描述值示例
http_proxy为http变量设置代理;默认不填开头以http协议传输10.0.0.51:8080
user:[email protected]:8080
socks4://10.0.0.51:1080
socks5://192.168.1.1:1080
https_proxy为https变量设置代理;同上
ftp_proxy为ftp变量设置代理;同上
all_proxy全部变量设置代理,设置了这个时候上面的不用设置同上
no_proxy无需代理的主机或域名;
可以使用通配符;
多个时使用“,”号分隔;
*.aiezu.com,10.*.*.*,192.168.*.*,
*.local,localhost,127.0.0.1 

针对上面变量的设置方法:

1、在/etc/profile文件

2、在~/.bashrc

3、在~/.zshrc

4、在/etc/profile.d/文件夹下新建一个文件xxx.sh

写入如下配置:

 export proxy="http://192.168.66.242:10808"
export http_proxy=$proxy
export https_proxy=$proxy
export ftp_proxy=$proxy
export no_proxy="localhost, 127.0.0.1, ::1"

而对于要取消设置可以使用如下命令,其实也就是取消环境变量的设置:

unset http_proxy
unset https_proxy
unset ftp_proxy
unset no_proxy

针对yum配置走代理:

经过测试其实只要设置上面的变量之后已经可以走代理了,但如果要单独设置,可以设置如下文件的变量:

echo "proxy=http://192.168.66.242:10808" >> /etc/yum.conf

Centos下运行exe

转载来源:
https://blog.csdn.net/weixin_42877471/article/details/83782485

版权归原作者所有。

1、安装需要的软件包

# yum groupinstall ‘Development Tools‘
# yum install libX11-devel freetype-devel zlib-devel libxcb-devel

2、下载并解压Wine包

# cd /usr/src
# wget http://prdownloads.sourceforge.net/wine/wine-1.7.24.tar.bz2
# tar xjf wine-1.7.24.tar.bz2

备注:1.7.24是开发版,不是稳定版,如果你需要安装稳定版请点此链接下载,方法是一样的。

3、安装Wine

这里使用的是源码编译,执行以下命令开始编译,配置好的话30分钟左右可以完成,配置差点的话可能需要更久的时间,耐心等待。

32位系统

# cd wine-1.7.24/
# ./configure
# make
# make install

64位系统

# cd wine-1.7.24/
# ./configure –enable-win64
# make
# make install

4、检查版本

可以使用下面的命令检查你安装的Wine的版本

32位系统

# wine –version

wine-1.7.24

64位系统

# wine64 –version

wine-1.7.24

5、Wine怎么用

使用如下命令运行你的程序,有些程序可能需要root权限:

wine xxx.exe

树莓派进水断电重启后Mysql起不来

错误日志类似于:

90119 12:55:54 InnoDB: Using Linux native AIO
190119 12:55:54 InnoDB: Initializing buffer pool, size = 128.0M
190119 12:55:54 InnoDB: Completed initialization of buffer pool
190119 12:55:54 InnoDB: highest supported file format is Barracuda.
190119 12:55:54  InnoDB: Starting crash recovery from checkpoint LSN=25825591529
InnoDB: Restoring possible half-written data pages from the doublewrite buffer...
190119 12:55:54  InnoDB: Starting final batch to recover 15 pages from redo log
190119 12:55:54 [ERROR] mysqld got signal 11 ;

解决办法:

修改/etc/my.cnf配置文件:
添加参数:
innodb_force_recovery = 6 (此项由1—6个级别一次往上修改参数在失败的情况下)
innodb_purge_threads = 0

整体配置如下:

[mysqld]
innodb_force_recovery=6
innodb_purge_threads = 0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

启动完后记得注释掉第一条第二条,否则有副作用,盲猜无法写入。

CentOS清除用户登录记录和命令历史方法

从删库到跑路

清除登陆系统成功的记录 [root@localhost root]# echo > /var/log/wtmp //此文件默认打开时乱码,可查到ip等信息

[root@localhost root]# last //此时即查不到用户登录信息
清除登陆系统失败的记录

[root@localhost root]# echo > /var/log/btmp //此文件默认打开时乱码,可查到登陆失败信息 [root@localhost root]# lastb //查不到登陆失败信息   清除历史执行命令

[root@localhost root]# history -c //清空历史执行命令

[root@localhost root]# echo > ./.bash_history //或清空用户目录下的这个文件即可   导入空历史记录

[root@localhost root]# vi /root/history //新建记录文件 [root@localhost root]# history -c //清除记录 

[root@localhost root]# history -r /root/history.txt //导入记录 

[root@localhost root]# history //查询导入结果

来源:https://www.cnblogs.com/jiftle/p/9604312.html


mysql delete删除数据磁盘空间不减少

某天公司腾讯云CDB服务器磁盘空间占用很高,而我们自己查看数据+索引则不多。原来我们日常定时删除操作delete并末释放磁盘空间。

   使用delete删除的时候,mysql并没有把数据文件删除,而是将数据文件的标识位删除,没有整理文件,因此不会彻底释放空间。被删除的数据将会被保存在一个链接清单中,当有新数据写入的时候,mysql会利用这些已删除的空间再写入。即,删除操作会带来一些数据碎片,正是这些碎片在占用硬盘空间。(BTW:看官方文档上好像是innodb引擎的可以利用操作系统来帮忙回收这些碎片,MyISam的表没有办法自己回收,这里待定,后续再看下)

查看数据库上所有表的大小,大概能统计出所占空间大小。

mysql> use information_schema;
Database changed
mysql> SELECT TABLE_NAME,concat(round((DATA_LENGTH/1024/1024),2),'MB'),concat(round((INDEX_LENGTH/1024/1024),2),'MB') FROM `TABLES` ORDER BY DATA_LENGTH DESC;
+----------------------------------------------------+-----------------------------------------------+------------------------------------------------+
| TABLE_NAME                                         | concat(round((DATA_LENGTH/1024/1024),2),'MB') | concat(round((INDEX_LENGTH/1024/1024),2),'MB') |
+----------------------------------------------------+-----------------------------------------------+------------------------------------------------+
| report_copy                                   | 14729.00MB                                    | 18130.00MB                                     |
| s_num                                    | 11392.00MB                                    | 17689.91MB                                     |
| stat                                     | 5452.00MB                                     | 4741.80MB                                      |
| game_log                                      | 3522.00MB                                     | 6235.95MB                                      |

官方推荐使用 OPTIMIZE TABLE命令来优化表,该命令会重新利用未使用的空间,并整理数据文件的碎片。

语法如下:

OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] …

注:该命令将会整理表数据和相关的索引数据的物理存储空间,用来减少占用的磁盘空间,并提高访问表时候的IO性能。但是,具体对表产生的影响是依赖于表使用的存储引擎的。该命令对视图无效。

该命令目前只对MyISAM、InnoDB,ARCHIVE的表起作用,其余引擎的不起作用

OPTIMIZE 在操作过程中会锁表,50多G数据表锁了将近1个小时,所以这点要特别注意。执行完毕释放了20G左右的空间,还是非常有效果的


踩过的坑: optimize 本质是alter table

mysql 5.5 的改表过程如下

1.创建一张新的临时表 tmp

2.把旧表锁住,禁止插入删除,只允许读写 (这就是为什么上面的insert语句都停留在waiting for table metadata lock)

3.把数据不断的从旧表,拷贝到新的临时表,(这就是上面报copy to tmp table)

4.等表拷贝完后,进行瞬间的rename操作

5.旧表删除掉

所以optimize最大的问题是锁表,锁表会导致insert,delete,update语句堵住,确保操作时业务切走。

alter table会复制一个表出来,磁盘空间会增加,操作完成合删除旧表。 这一过程可能会爆磁盘
————————————————
版权声明:本文为CSDN博主「qq13650793239」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq13650793239/java/article/details/84889975

zabbix数据库占用磁盘空间较大的处理方法

du -h /* |sort -nr  使用此命令一步步排查发现/var/lib/mysql/zabbix/这个目录占用磁盘空间较大

发现history_log.ibd这个文件最大,达到了38G,此文件对应的是zabbix库里的history_log表

找到问题原因后就好解决,进入zabbix,删除history_log表较早的数据即可

进入MySQL的zabbix库

delete from history_log where clock < 1540483200;   删除小于这个时间戳的数据

optimize table  history_log     delete操作以后使用optimize table table_name 会立刻释放磁盘空间

df -h   最后再验证一下磁盘空间是否有变化

先删除 history_log.

delete from history_log where clock < 1540483200;   删除小于这个时间戳的数据

optimize table  history_log 

依然空间占用很大。使用以下命令查询tab占用:

MariaDB [zabbix]> SELECT table_name AS “Tables”, round(((data_length + index_length) / 1024 / 1024), 2) “Size in MB” FROM information_schema.TABLES WHERE table_schema = ‘zabbix’ ORDER BY (data_length + index_length) DESC;
————————————–+

Tables                     Size in MB

————————————–+

history_text                 776627.66
history_uint                   7623.14
history                        1819.95
trends_uint                     541.81
history_str                     404.22
trends                          246.09
events                          190.95
alerts                          139.75
auditlog                         36.09
sessions                         30.14
event_recovery                   16.55
history_log                      16.39
items                             7.11
items_applications                2.80

可以看到,history_text占据了绝对空间。

使用以下命令删除7天前的history_text:

delete from history_text where clock <1586361600;

执行时间较长。等待中


参考来源:https://www.cnblogs.com/leon2659/p/9924627.html