Linux 更改主机名
2017-03-12 tech linux 1 mins 190 字
更改主机名一般我们都使用 hostname xxx
, 这样做是没问题,不过需要重启服务器才能生效。
在ubuntu官网论坛上看到有这个快速的办法,用户重新登录即可,不需要重启服务器。同时适合debian系和centos系
hostnamectl set-hostname xxx
更改主机名一般我们都使用 hostname xxx
, 这样做是没问题,不过需要重启服务器才能生效。
在ubuntu官网论坛上看到有这个快速的办法,用户重新登录即可,不需要重启服务器。同时适合debian系和centos系
hostnamectl set-hostname xxx
运行 service docker start
时报错
Redirecting to /bin/systemctl start docker.service Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
解决问题的办法就是清空 /var/lib/docker
下的所有文件。要注意这样会导致你所有的Docker数据都会丢失。
来自 [docker service failed to start #25913 | github issues](https://github.com/docker/docker/issues/25913) |
iptables failed - No chain/target/match by that name
一个bug,重启dockers服务就好了。
mv /var/lib/docker/network/files /tmp/docker-iptables-err
systemctl restart docker
iptable filter
使用 Docker PPTP 的 iptable 例子
*nat
-A POSTROUTING -s 10.99.99.0/24 -o eth0 -j MASQUERADE
* filter
-A FORWARD -d 10.99.99.0/24 -j ACCEPT
-A FORWARD -s 10.99.99.0/24 -j ACCEPT
这个 issue 是我提的。提完之后自己就找到答案了。
这个与主机提供商有关了。主机在使用 docker 时某些项目需要使用 IPsec NETKEY 内核模块,其它主机不了解,linode的默认内核是修改过的,所以没有这个内核模块。如果想启用的话需要在后台配置里将默认启动内核改为 GRUB 2 模式。
你可以查看我在github上的开源项目 KeluLinuxKit 获得完整源码。
手上有好几台服务器,配置都是相似的,也使用zsh。每次窗口稍微一多,就不知道是在哪个服务器上了,每次hostname
也是麻烦。寻思着还是想办法在zsh上显示hostname
吧。然后找到了一个超强的 .zshrc 配置。原文在这:My Extravagant Zsh Prompt
我稍微做了一点点调整,将它加到 .zshrc 里去,最后是这样子的。
效果图如下:
源码如下:
function collapse_pwd {
echo $(pwd | sed -e "s,^$HOME,~,")
}
function prompt_char {
git branch >/dev/null 2>/dev/null && echo '±' && return
hg root >/dev/null 2>/dev/null && echo '☿' && return
echo 'YUKI.N > '
}
function battery_charge {
echo `$BAT_CHARGE` 2>/dev/null
}
function virtualenv_info {
[ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') '
}
function hg_prompt_info {
hg prompt --angle-brackets "\
< on %{$fg[magenta]%}<branch>%{$reset_color%}>\
< at %{$fg[yellow]%}<tags|%{$reset_color%}, %{$fg[yellow]%}>%{$reset_color%}>\
%{$fg[green]%}<status|modified|unknown><update>%{$reset_color%}<
patches: <patches|join( → )|pre_applied(%{$fg[yellow]%})|post_applied(%{$reset_color%})|pre_unapplied(%{$fg_bold[black]%})|post_unapplied(%{$reset_color%})>>" 2>/dev/null
}
PROMPT='
%{$fg[magenta]%}%n%{$reset_color%} at %{$fg[yellow]%}%m%{$reset_color%} in %{$fg_bold[green]%}$(collapse_pwd)%{$reset_color%}$(hg_prompt_info)$(git_prompt_info)
$(virtualenv_info)$(prompt_char) '
RPROMPT='$(battery_charge)'
ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[magenta]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[green]%}!"
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[green]%}?"
ZSH_THEME_GIT_PROMPT_CLEAN=""
使用 Laravel 进行开发也有两年的时间了。整理了一下平时常用的资源。
首先不得不说这个 Github 项目,整理了来自Laravel生态系统的精选资源,包括书签、包、教程、视频以及其它诸多很酷的资源。原项目有4000+的star,
sleimanx2/plastic Elasticsearch ODM and mapper for Laravel
这几天写了个测试用例,发现一个点记录下。Eloquent 在取出一系列数据后是个集合collection。所以在判断的时候应该判断是否为collection,而不是数组。即:
is_a($item, 'Illuminate\Database\Eloquent\Collection')
先前没有考虑清楚,使用is_array判断。然而collection是个object而非array。
具体代码如下:
/**
* 删除所有子关系最后删除自己
*
* @return bool
* @throws \Exception
*/
public function del()
{
$className = get_class($this);
foreach ($className::$hasModels as $relate) {
$relateModel = $this->$relate;
if (is_array($relateModel) || is_a($relateModel, 'Illuminate\Database\Eloquent\Collection')) {
foreach ($this->$relate as $item) {
$item->delete();
}
} else {
$relateModel->delete();
}
}
$this->delete();
return true;
}
事实上 instanceof 也可以实现这样的效果:
if($relateModel instanceof 'Illuminate\Database\Eloquent\Collection') {
}