linux

U盘安装ubuntu-16.04.2-server-amd64遇到问题的解决记录

星期四, 三月 14th, 2019 | computer, linux | 没有评论

想在机器上安装这个还真是麻烦,还待续,网络及无线网卡部分还没有搞定…

1.U盘安装ubuntu-16.04.2-server-amd64

1.制作篇
1.1 UltraISO 打开iso文件,启动–》写入硬盘映像

1.2 复制 对应的iso 文件到u盘里

2.安装篇
2.1 F2(或者其他) 进入boot,设定BIOS中boot 从刚制作的U盘启动

2.1 安装会出现 CD-ROM 盘失败

解决方法:
进入对应的shell:

1、Alt+F2进入命令行(或者有shell选项进入)
2、ls /dev/sd* 查看对应的盘符,拔掉再插入即可看到新加的U盘部分 ,我这边是/dev/sdb4
3、挂载U盘到/mnt目录
mount /dev/sdb4 /mnt
4、挂载iso文件到/cdrom目录

	mount -o loop /mnt/ubuntu-16.04.2-server-amd64.iso /cdrom

如果上面报mounting /dev/loop0 invalid argument 请使用下面的这个命令

mount -o loop -t iso9660  /mnt/ubuntu-16.04.2-server-amd64.iso /cdrom

5、查看/cdrom目录,确定是否挂载成功
6、Alt+F1回到安装界面,继续安装
7、之后又遇到类似未挂载的问题,再次执行上诉步骤挂载iso文件到/cdrom即可,要先umount /dev/sdb4

umount /dev/sdb4
mount /dev/sdb4 /mnt
mount -o loop /mnt/ubuntu-16.04.2-server-amd64.iso /cdrom
或者
mount -o loop -t iso9660  /mnt/ubuntu-16.04.2-server-amd64.iso /cdrom

Tags: ,

ubuntu安装后的开启ssh服务及root访问

星期日, 三月 10th, 2019 | linux | 没有评论

ubuntu 安装后的常用处理才能正常使用

1.ubuntu 开启ssh服务

sudo apt-get install openssh-server

2.为ssh服务打开使用root用户登录的权限

#sudo vi /etc/ssh/sshd_config

开启:PermitRootLogin yes

3.重启一下ssh服务

#sudo service ssh restart

4.启用root用户 设置root用户的新密码

#sudo  passwd  root

完成后既可以用root用户进行远程连接

Tags:

git初始配置存储帐号等

星期三, 二月 27th, 2019 | linux | 一条评论

信息保存在 当前帐号的 ~/.gitconfig 下和 ~/.git-credentials

1.配置提交的用户名及email地址

$ git config --global user.name "Leeyz"
$ git config --global user.email "[email protected]"

2.配置自动保存帐号信息省的每次 pull 都输入密码

$ git config --global credential.helper store

3. 移除帐号信息可以

$ rm ~/.gitconfig
$ rm ~/.git-credentials

4.密码等信息重新修改可以使用下面命令移除保存的密码信息

$ git config --global http.emptyAuth true

更多使用手册参考:https://git-scm.com/book/zh/v2

Tags:

centos7开机启动脚本未执行

星期三, 二月 27th, 2019 | linux | 没有评论

1.开机启动脚本放置在
vi /etc/rc.local

2.没有权限引起
chmod +x /etc/rc.d/rc.local

即可

Tags:

mysql的全量(查询)日志general-log的开启

星期一, 五月 21st, 2018 | JAVA-and-J2EE, linux | 没有评论

怀疑有异常连接进来操作数据库则开启日志记录.

mysql> show global variables like '%general%';
+------------------+----------------------------+
| Variable_name    | Value                      |
+------------------+----------------------------+
| general_log      | OFF                         |
| general_log_file | /var/run/mysqld/mysqld.log |
+------------------+----------------------------+
2 rows in set (0.00 sec)
 
mysql> set global general_log=on;
Query OK, 0 rows affected (0.00 sec)
 
mysql> set global general_log_file='/data/logs/mysql/mysql_general_log.log';
ERROR 1231 (42000): Variable 'general_log_file' can't be set to the value of '/data/logs/mysql/mysql_general_log.log'

1. 设置general log保存路径
2. 注意在Linux中只能设置到 /tmp 或 /var 文件夹下,设置其他路径出错
3. 需要root用户才有访问此文件的权限

4. 针对 2的一点注意 此版本是mysql-5.1.73 无法使用其他路径,可能新版本可以使用

已经尝试

chown -R mysql:mysql /data/logs/mysql/
chomd 777 /data/logs/mysql/mysql_general_log.log

Tags:

Git没有记录你的Contributions的修复记

星期二, 五月 15th, 2018 | JAVA-and-J2EE, linux | 一条评论

1.可以通过git log 查看提交的用户不一致造成的,只要调整成一致的用户即可(主要是email地址)

2.全局指定用户信息(如果有不同的账号信息,见3配置,可能公司和个人不同的git账号)

git config --global user.email "你的邮件地址"
git config --global user.name "你的Git用户名"

3.配置指定的git项目的config文件从而使每个独立账号
修改(.git下的config文件)
新增内容如下:
[user]
name = 正确的用户名
email = 正确的邮件地址

4.git提交历史的恢复及修改错误的email(若很在意提交的email信息请谨慎执行,比如把公司的email信息带到了log中,本人已验证可以正确执行)
重新clone 一份操作
4.1复制粘贴脚本,并根据你的信息修改以下变量:旧的Email地址,正确的用户名,正确的邮件地址

#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="旧的Email地址"
CORRECT_NAME="正确的用户名"
CORRECT_EMAIL="正确的邮件地址"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

4.2按 Enter键 执行脚本。

4.3用git log命令看看新 Git 历史有没有错误

4.4把正确历史 push 到 Git

git push --force --tags origin 'refs/heads/*'

删除此次的clone
5.现在已经完全记录了你的提交数(4不执行的话,下次提交才会生效)

Tags:

centos7 里面修改hostname的方式

星期三, 三月 21st, 2018 | linux, 大数据 | 没有评论

在CentOS中,有三种定义的主机名:静态的(static),瞬态的(transient),和灵活的(pretty)。

“静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名。
“瞬态”主机名是在系统运行时临时分配的主机名,例如,通过DHCP或mDNS服务器分配。
静态主机名和瞬态主机名都遵从作为互联网域名同样的字符限制规则。

centos7 里面修改hostname的方式有所改变,修改/etc/hosts和/etc/sysconfig/network两个文件已经不能生效。使用的新命令是:
默认 set-hostname 同时修改三个值,想只修改一个加 -static 对应的参数

shell> hostnamectl set-hostname centos7
shell> su
shell> hostname
centos7

centos7之前的版本请用此方法:

shell> vi /etc/sysconfig/network
# Created by anaconda
NETWORKING=yes
HOSTNAME=centos6
:wq #保存并退出

局域网A/B主机直接通过hostname访问主机B:

#A主机设置
shell> vi /etc/sysconfig/network
GATEWAY=192.168.1.100 #当前主机内网ip
:wq #保存并退出
#A/B主机设置
shell> vi /etc/hosts
192.168.1.100 hostname
:wq #保存并退出

Tags:

git忽略整个文件夹及移除已经提交的文件

星期五, 十二月 8th, 2017 | JAVA-and-J2EE, linux | 没有评论

一些自动编译的class文件也会提交到git上,每次都有文件去提交很影响代码回查.

如下操作使其不再提交,只要把其列入ingore中.

1.在项目的根目录(跟.git文件夹所在目录同层)建立.gitignore文件,在里面声明即可.

内容如下:

#ignore these files
*.class
classes/
target/
build/

2.如果之前文件已提交过,则需要先清除原文件(文件夹加-r即可),针对特定文件做清理如下

$ git rm *.class
$ git rm -r classes/

3.最后git add .gitignore 再git commit -m “ignore” 即可

Tags:

Nginx配置静态文件404问题解决

星期一, 十月 23rd, 2017 | computer, linux | 没有评论

Nginx提供了另外一个静态路径配置 : alias

alias与root区别

官方root

Sets the root directory for requests. For example, with the following configuration
location /i/ {
    root /data/w3;
}
The /data/w3/i/top.gif file will be sent in response to the “/i/top.gif” request

官方alias

Defines a replacement for the specified location. For example, with the following configuration
location /i/ {
    alias /data/w3/images/;
}
on request of “/i/top.gif, the file /data/w3/images/top.gif will be sent.

当访问/i/top.gif时,

root是去/data/w3/i/top.gif请求文件,

alias是去/data/w3/images/top.gif请求

root响应的路径:配置的路径+完整访问路径(完整的location配置路径+静态文件)

alias响应的路径:配置路径+静态文件(去除location中配置的路径)

修改配置为

location /api/v1/upload {  
     alias /home/v1/upload/;  
}

注意

使用alias时目录名后面一定要加“/”

一般情况下,在location /中配置root,在location /other中配置alias

Tags:

golang开发的小工具的小问题总结

星期五, 七月 7th, 2017 | linux | 没有评论

用golang 开发了个自动抓取的小工具,同时受控服务器的任务分发.

小问题总结
1.build后的文件太大(5M)启用这种编译后(3M),更多加壳压缩太麻烦 没有弄了

解决采用:go build -ldflags “-s -w” 这种方式编译。

解释一下参数的意思:

-ldflags: 表示将后面的参数传给连接器(5/6/8l)
-s:去掉符号信息
-w:去掉DWARF调试信息
注意:

-s 去掉符号表(这样panic时,stack trace就没有任何文件名/行号信息了,这等价于普通C/C+=程序被strip的效果)

-w 去掉DWARF调试信息,得到的程序就不能用gdb调试了

2.工具启动后不允许崩溃 异常捕获 使用recover 捕获调用异常

package main
 
import (
    "fmt"
    "time"
)
 
func main() {
    i := 10000
    for j := 0; j < 3; j++ {
        // 使用多协程处理,其中可以预见的是除数为0会抛出异常
        go divide(i, j)
    }
 
    // 为了保证前面线程运行完,这里休眠一下
    for {
        time.Sleep(1 * time.Second)
    }
}
 
func divide(i, j int) {
    // 定义recover方法,在后面程序出现异常的时候就会捕获
    defer func() {
        if r := recover(); r != nil {
            // 这里可以对异常进行一些处理和捕获
            fmt.Println("Recovered:", r)
        }
    }()
 
    fmt.Println(i / j)
}

Tags:

Search

文章分类

Links

Meta