aaron 发布的文章

curl -o /dev/null -s -w %{http_code}:%{time_connect}:%{time_starttransfer}:%{time_total} https://www.elooy.com;

-o /dev/null 丢弃输出
-s 静默模式
-w 格式化输出, 变量有url_effective, http_code, http_connect, time_total,time_namelookup, time_connect, time_appconnect, time_pretransfer, time_redirect,time_starttransfer, size_download, size_upload, size_header, size_request, speed_download, speed_upload, content_type,num_connects, num_redirects, redirect_url, ftp_entry_path, ssl_verify_result

# 每隔5秒访问一次
while true; do curl -o /dev/null -s -w %{http_code}:%{time_connect}:%{time_starttransfer}:%{time_total} https://www.elooy.com; echo;sleep 5;done

命令的用法:

Usage:
 crontab [options] file
 crontab [options]
 crontab -n [hostname]

Options:
 -u <user>  define user
 -e         edit user's crontab
 -l         list user's crontab
 -r         delete user's crontab
 -i         prompt before deleting
 -n <host>  set host in cluster to run users' crontabs
 -c         get host in cluster to run users' crontabs
 -s         selinux context
 -x <mask>  enable debugging

任务格式: 分钟 小时 星期 命令

名称数值范围
分钟0~59
小时0~23
1~31
1~12
星期0~7 (0/7表示星期天)
时间格式描述
*表示每分钟\小时\天\月\星期
n-m表示n~m分\时\日\月\星期
*/n表示间隔分钟\小时\天
a,b,c表示指定的第a, b, c分钟\小时\天\星期

select(index, ...)

如果index是正数,那么返回从左边第index个到最右边的参数;
如果index是负数,那么返回从右边第index个到最左边的参数;
如果index是字符串"#", 那么返回可变参数...的参数个数
例如:

function test(...)
    print(select("#", ...))
    -- 输出为:
    -- 4

    for i=1, select("#", ...) do
        print(select(i, ...))
    end
    -- 输出为:
    -- 1    2    3    4
    -- 2    3    4
    -- 3    4
    -- 4

    for i=1, select("#", ...) do
        print(select(-i, ...))
    end
    -- 输出为:
    -- 4
    -- 3    4
    -- 2    3    4
    -- 1    2    3    4
end

test(1, 2, 3, 4)

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

information_schema库中有三个关于锁的表:

  • innodb_trx ## 当前运行的所有事务
  • innodb_locks ## 当前出现的锁
  • innodb_lock_waits ## 锁等待的对应关系

解决办法

select * from information_schema.innodb_trx;
select * from information_schema.innodb_locks;
select * from information_schema.innodb_lock_waits;
-- 找到一直没有提交的事务
kill <trx_mysql_thread_id>

客户端配置

生成密钥文件

使用ssh-keygen命令在客户端电脑上生成公钥和私钥,根据提示操作,保存到$HOME/.ssh/目录, 例如生成的文件为:xxx_rsa, xxx_rsa.pub

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

<br/>

配置登录的key

编辑~/.ssh/config, 按如下格式编辑

Host <hostname>
    Hostname <hostname>
    User <username>
    Port <port>
    IdentityFile ~/.ssh/xxx_rsa

<br/>

SSH Key认证
ssh <hostname>

<br/>

服务端配置

先以Root用户登录
在authorized_keys文件尾,增加SSH KEY

vi ~/.ssh/authorized_keys

编辑ssh配置文件

vi /etc/ssh/sshd_config

内容修改为:

RSAAuthentication yes
StrictModes no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no

重启SSH

systemctl restart sshd.service

重启好后,就可以使用上面的ssh <hostname>登录服务器了.