leadscloud

Google SEO|外贸营销推广


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 我的简历

  • 友情链接

  • Chrome扩展(域名所属人)

  • 询盘管理系统

  • 外贸留言板系统

  • 搜索

Inode limit, how to increase inode limit on block storage volume?

发表于 2020-12-17 | 分类于 Linux | | 阅读次数: | 字数统计: 482

df -h 查看磁盘还有空间,但无法创建任何文件,提示磁盘空间已满(No space left on device)。

1
2
3
4
5
6
7
8
9
[root@centos-fra ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 17M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/vda1 80G 73G 7.1G 92% /
tmpfs 379M 0 379M 0% /run/user/0
/dev/sda 100G 26G 69G 28% /mnt/volume_fra1_01

最终发现下面的解决办法。

用 df -i 查看下索引节点(inode),会发现已经用满(IUsed=100%)。
这会导致无法创建文件和目录,并且提示 No space left on device。

1
2
3
4
5
6
7
8
9
[root@centos-fra ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 479052 312 478740 1% /dev
tmpfs 485037 1 485036 1% /dev/shm
tmpfs 485037 464 484573 1% /run
tmpfs 485037 16 485021 1% /sys/fs/cgroup
/dev/vda1 22168424 6377093 15791331 29% /
tmpfs 485037 1 485036 1% /run/user/0
/dev/sda 3276800 3276800 0 100% /mnt/volume_fra1_01

原因

cache目录中存在数量非常多的小字节缓存文件,占用的Block不多,但是占用了大量的inode。

linux里每个文件都有些元信息像创建时间,文件大小,文件名啊之类的,这些元信息就存在inode了。这样如果小文件过多的话,可能磁盘没满但inode空间已分配完,这时磁盘就跟满了一样无法写入.

解决办法

挂载之前 使用下面命令增大inode数量,如果已经挂载,需要先卸载。
但执行下面的命令后,磁盘相当于重新格式化,之前的数据就消失了。

1
mkfs.ext4 -N 20000000 /dev/path/to/volume

还有一个解决办法:

用软连接将空闲分区/home/wwwroot/中的newcache目录连接到/mnt/volume_fra1_01/.cache,使用/home分区的inode来缓解/mnt分区inode不足的问题:

参考文章

  • https://www.digitalocean.com/community/questions/inode-limit-how-to-increase-inode-limit-on-block-storage-volume

DigitalOcean的浮动IP使用

发表于 2020-11-20 | 分类于 技术 | | 阅读次数: | 字数统计: 194

DigitalOcean浮动IP是可以分配给您的某个Droplet的可公开访问的静态IP地址.

由于工作需要,需要给VPS绑定一个新的IP,并且要求请求特定IP时,使用新IP的接口。

使用方法:

1
2
3
4
5
# 查看下你的浮云IP是设置成功
curl http://169.254.169.254/metadata/v1/floating_ip/ipv4/active

# 查看浮云IP对应的网关
curl http://169.254.169.254/metadata/v1/interfaces/public/0/anchor_ipv4/gateway

得到网关地址为 10.13.0.1

在路由中添加新路由

1
ip route add 10.0.1.3 via 10.13.0.1 dev eth0

这样访问10.0.1.3时,就会使用新ip的网关口请求了。

参考文章:

  • https://www.digitalocean.com/community/questions/send-outbound-traffic-over-floating-ip
  • https://www.digitalocean.com/docs/networking/floating-ips/

Linux下根据日期删除旧的文件

发表于 2020-10-27 | 分类于 技术 | | 阅读次数: | 字数统计: 184

删除30天前的文件

你可以使用find命令搜索X天前的文件,前根据需要删除它

先列出 /home/wwwroot/db 下面30天前的文件

1
find /home/wwwroot/db -type f -mtime +30

检查列出的文件列表,如果没有问题,使用下面的命令删除它

1
find /opt/backup -type f -mtime +30 -exec rm -f {} \;

根据文件后缀删除文件

你也可以增加过滤条件,只删除某一类型的文件。

比如删除.log后缀的30天前的日志文件

1
find /var/log -name "*.log" -type f -mtime +30

同样,检查下列出的日志是否正确,然后再使用下面命令删除它

1
find /var/log -name "*.log" -type f -mtime +30 -exec rm -f {} \;

Catalina 10.15 外接显示器后睡眠唤醒经常死机

发表于 2020-10-13 | 分类于 技术 | | 阅读次数: | 字数统计: 100

这是一个MacOS的bug,发生的情况非常普遍。

一个可能的解决方案

kextstat | grep -v com.apple

1
2
Index Refs Address Size Wired Name (Version) UUID <Linked Against>
116 0 0xffffff7f83ee4000 0x42000 0x42000 com.paragon-software.filesystems.ntfs (66.5.15) 43B8E60C-1D4C-37A1-A831-0ECF23B29456 <8 6 5 1>

卸载它

sudo kextunload -b com.paragon-software.filesystems.ntfs

1
2
kextstat | grep -v com.apple
Index Refs Address Size Wired Name (Version) UUID <Linked Against>
  • https://www.reddit.com/r/MacOS/comments/dr1b0v/kernal_panics_causing_restarts_in_sleep_mode_in/

Ubuntu 18.04下修改DNS

发表于 2020-09-04 | 分类于 技术 | | 阅读次数: | 字数统计: 229

通过修改文件 /etc/resolv.conf 就可以修改dns

1
2
3
# Use Google's public DNS servers.
nameserver 8.8.4.4
nameserver 8.8.8.8

但是以上方法只是临时有效,服务器重启后就恢复原样了,还是变成下面这样

1
2
nameserver 127.0.0.53
search Home

怎么样才可以永久修改呢?

  1. 安装 resolvconf .

sudo apt install resolvconf

  1. 编辑 /etc/resolvconf/resolv.conf.d/head 添加以下内容:
1
2
3
4
# Make edits to /etc/resolvconf/resolv.conf.d/head.
nameserver 8.8.4.4
nameserver 8.8.8.8
Restart the resolvconf service.
  1. 重启服务

sudo service resolvconf restart

Ubuntu 18.04 下面 修改ip及dns使用netplan

显示ip信息

ip addr show

显示路由信息

ip route show

编辑网络信息

vi /etc/netplan/*.yaml

1
2
3
4
5
6
7
8
9
10
network:
ethernets:
eno1:
addresses: [192.168.1.13/24]
gateway4: 192.168.1.1
dhcp4: true
optional: true
nameservers:
addresses: [8.8.8.8,8.8.4.4]
version: 2

应用配置:

netplan apply

LNMP下解决Can’t connect to MySQL server问题

发表于 2020-08-31 | 分类于 技术 | | 阅读次数: | 字数统计: 349

错误详情,lnmp下无法远程连接mysql

ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.49' (60)

如果设置好mysql的远程连接后,仍然出现上面的问题一般是因为防火墙规则的问题。

查看iptables规则

sudo iptables -L

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- localhost anywhere tcp dpt:mysql
DROP tcp -- anywhere anywhere tcp dpt:mysql
ACCEPT tcp -- anywhere anywhere tcp dpt:mysql
ACCEPT tcp -- 192.168.1.0/24 anywhere tcp dpt:mysql

Chain FORWARD (policy ACCEPT)
target prot opt source destination
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain DOCKER (1 references)
target prot opt source destination

注意上面多了一条

DROP tcp -- anywhere anywhere tcp dpt:mysql

mysql的远程连接被禁用了

使用下面命令显示规则的序号

sudo iptables -L -n --line-number

使用下面命令可以删除相应的规则

sudo optables -D INPUT 6

之后mysql连接就没问题了

下次重启规则还是会生效的,使用下面命令永久保存规则

sudo iptables-save

上面的保存还是不行,使用下面的命令永久保存。

如果没有安装iptables-persistent,先安装它

sudo apt-get install iptables-persistent

保存命令:

1
2
sudo netfilter-persistent save
sudo netfilter-persistent reload

修复Ubuntu18.04 Cloud-init导致卡在login界面

发表于 2020-07-24 | 分类于 Linux | | 阅读次数: | 字数统计: 389

开机后会一直卡在这个界面

1
Cloud-init v. 18.4-0ubuntu1~18.04.1 running 'modules:config' at Fri, 24 Jul 2020

single模式进入ubuntu

  1. 开机时长按Shift键

  2. 出现grub选项,选中ubuntu

  3. 长按e键

  4. 找到类似下面的代码

    1
    2
    3
    linux /boot/vmlinuz-3.2.0-24-generic root=UUID=bc6f8146-1523-46a6-8b\
    6a-64b819ccf2b7 ro quiet splash
    initrd /boot/initrd.img-3.2.0-24-generic
  5. 在 ro quiet splash 这后面,加上 single

  6. 按 Ctrl+x或F0 进入系统

参考: https://askubuntu.com/questions/132965/how-do-i-boot-into-single-user-mode-from-grub

Ubuntu的网卡设置

sudo vim /etc/netplan/50-cloud-init.yam

1
2
3
4
5
6
7
8
9
10
# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
enp3s0:
dhcp4: true
version: 2

enp3s0 如果错了,改下,我的是因为硬盘换了另一台电脑,有变化,导致ip获取失败。

ifconfig -a 可以显示所有网卡。

设置静态ip

1
2
3
4
5
6
7
8
9
10
network:
ethernets:
enp3s0: # 配置的网卡名称
dhcp4: no # 关闭dhcp4
dhcp6: no # 关闭dhcp6
addresses: [192.168.0.120/24] # 设置本机IP地址及掩码
gateway4: 192.168.0.1 # 设置网关
nameservers:
addresses: [114.114.114.114, 8.8.8.8] # 设置DNS
version: 2

配置完成后,保存并退出,执行 netplan apply 命令可以让配置直接生效

ifconfig -a 可以看下是否成功

重新启停以太网卡命令:

ifconfig enp3s0 down

ifconfig enp3s0 up

参考: https://www.cnblogs.com/opsprobe/p/9979234.html

在centos7上安装java和tomcat

发表于 2019-10-29 | 分类于 技术 | | 阅读次数: | 字数统计: 303

安装Java11

1
yum install java-11-openjdk -y
1
2
3
4
5
java -version

openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)

安装Tomcat

1
2
3
wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz
tar xzf apache-tomcat-9.0.27.tar.gz
mv apache-tomcat-9.0.27 /usr/local/tomcat9

启动tomcat

1
2
cd /usr/local/tomcat9/
./bin/startup.sh

输出示例

1
2
3
4
5
6
Using CATALINA_BASE:   /usr/local/tomcat9
Using CATALINA_HOME: /usr/local/tomcat9
Using CATALINA_TMPDIR: /usr/local/tomcat9/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat9/bin/bootstrap.jar:/usr/local/tomcat9/bin/tomcat-juli.jar
Tomcat started.

最后浏览器中输入 http://localhost:8080 即可访问tomcat服务器了。

war文件部署

打war包

项目名称为mygoodcache

eclipse中项目上右键 export-->war file -->Browse(指定打完的包存放路径)-->finish mygood.war包已经完成

部署到tomcat

  • 找到tomcat的安装路径(如:/usr/local/tomcat9/)
  • webapps文件夹中如果有war包及文件夹都删除
  • /usr/local/tomcat9/webapps 中上传新的war包
  • /usr/local/tomcat9/bin/startup.bat 启动tomcat

安装lnmp

https://lnmp.org/install.html

创建数据库

CREATE DATABASE crawler_pool CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

导入数据库

mysql -p crawler_pool < mygood.sql

GoDaddy使用支付宝跨境汇款进行预充值

发表于 2019-10-28 | 分类于 技术 | | 阅读次数: | 字数统计: 699

Godaddy是流行的域名注册,虽然有些垃圾,但注册域名有时还是可以的。它有API可使用,以购买域名,大部分域名还是可以购买的。

但如果你账户中没有余额,是无法使用API购买的,这篇文章介绍如何向Godaddy中预充值。

注意:使用Godaddy的API买域名是无法使用优惠券的。

API有时也会买域名失败,虽然大部分情况下会自动退款,但也有不退款的情况发生,对于我来说.co.za的域名发生过这种情况,你需要特别提醒godaddy给你处理。

这种充值方式是没有发票的,在Godaddy中账户中,你无法找到对应的billing记录。只会在Good As Gold中显示一个收据编号,然后一个充值提示,不会和买域名时一样,会生成一个详情的订单记录。

向GoDaddy中预存款,以使用API注册域名

Godaddy中有一个Good As Gold付款方式。在 账户设定,付款方式中可以看到。

https://account.godaddy.com/payment-methods

image-20191028141636275

你可以参考以下链接阅读Godaddy的帮助,通过向godaddy的银行账号转账,以达到预存款目的。这个账号,在下面的支付宝中会使用。

https://sg.godaddy.com/zh/help/good-as-gold-727

image-20191028140809338

收款银行名称:JPMorganChase Bank
银行地址:270 Park Avenue, New York, NY 10017
账户名称:GoDaddy.com, LLC
账号:580706823
汇款路径号码:021000021
ACH 汇款路径号码:124001545
Swift 代码:CHASUS33
参考:客户编号

支付宝付款流程图

先在支付宝里搜索上银汇款,打开上银汇款,如下界面,最低100美元起步。

手续费是每次50,无论你汇多少,它都是按次收费的,所以单次可以多汇一点,会省点手续费。

支付宝美元汇款,不支持信用卡,只能是银行卡或余额宝。

image-20191028135048071

我已经添加了联系人,如果你是第一次汇款,需要按godaddy的帮助说明,添加godaddy的银行账号

https://sg.godaddy.com/zh/help/good-as-gold-727

image-20191028135201586

选择计算机网络服务费

image-20191028135210797

下面这一项,需要手动填写,并且要注意不要弄错,否则会失败。

交易对方名称:GoDaddy.com, LLC

具体购汇项目:域名购买

附言:这个是你的Godaddy账号 (Customer id)

登陆你的Godaddy账号,可以点击右上角你的头像,会看到Customer id

附言,只需要填写customer id,不要有其它的任何字符,否则会失败。

image-20191028135836822

image-20191028135219882

image-20191028135227517

image-20191028135236330

image-20191028135245963

image-20191028135254666

image-20191028135302802

第一次充值后,需要5-7个工作日,但也可能2-3天就可以。

之后再充值2-3天就会到账,但一般不会超过7个工作日。

MySQL重置root密码

发表于 2019-10-10 | 分类于 Linux | | 阅读次数: | 字数统计: 105

编辑mysql配置文件 vi /etc/my.cnf,在mysqld下添加一行skip-grant-tables,如下

1
2
3
4
[mysqld]
#...
skip-grant-tables
#...

这样就可以免密登录MySQL

重启MySQL service mysqld restart

在终端中直接输入 mysql 即可进入mysql

切换数据库

use mysql;

输入以下命令

1
update user set authentication_string=password('新密码') where user='root';

MySQL5.7前的版本使用

1
update user set password=password('新密码') where user='root';
12…46
Ray

Ray

Think Difficulty

451 日志
11 分类
258 标签
RSS
GitHub V2EX E-Mail
Creative Commons
Links
  • RLiveChat
  • Roadheader
  • TinyCMS
Copyright © 2020 leadscloud. All rights reserved.
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4, modified by Ray.
本站总访问量 次