理解 Linux shell 脚本的 2>&1
我们在编程中经常会使用一些固定语句来解决对应固定的问题,在 shell 脚本中一个被经常使用但不太好理解的短句就是 2>&1
,例如:
ls foo > /dev/null 2>&1
下面我们一步步了解下这种结构的含义。
我们在编程中经常会使用一些固定语句来解决对应固定的问题,在 shell 脚本中一个被经常使用但不太好理解的短句就是 2>&1
,例如:
ls foo > /dev/null 2>&1
下面我们一步步了解下这种结构的含义。
最近需要实现一个自动发送 telegram 消息的功能,GitHub 上发现一个 telegram 第三方的命令行终端:telegram-cli。可以实现我需要的功能。
GitHub 主页:https://github.com/vysheng/tg
测试平台为 Ubuntu 18.04
最近搬进新家,配置好了局域网环境并使用海康 h99 作为存储中心共享资源给各个设备使用。它支持 smb 和 afp 协议共享文件,通常情况下 smb 就足够了。
之前我的 MacBook 是通过 usb 直接连接外部硬盘来进行 Time Machine 的,需要将硬盘格式化为 macOS 扩展格式。既然有了网络存储中心,那么为什么不将 Time Machine 也放在网络驱动器上呢?
研究了下果然有解决方案的,基本原理就是通过在网络驱动器上创建一个 macOS 格式的虚拟磁盘,然后再 MacBook 上挂载这个虚拟磁盘就可以正常进行备份及还原了。
最近在家里搭建了局域网环境,使用了一个海康威视 H99 网络驱动器作为家里的存储中心。它可以实现 smb 和 arp 协议的共享,从而满足我的基本需求。
访问 smb 共享目录的方法是在文件浏览器中通过:smb://xxx.xxx.xxx.xxx
的模式输入地址,然后就会将网络驱动器挂载到本地,显示为一个本地网络路径。之后就可以正常的管理远程文件内容了。
但是我发现在使用一些下载软件的时候,无法直接将共享目录作为下载目录设置,只能选择本地的目录地址。此时就需要将 smb 网络共享路径映射为本地地址才可以实现上述需求。
下面介绍在 Ubuntu 中配置。
最近在使用 openwrt 时发现在 web 控制台设置好时区后,系统日志依然显示的是 UTC 时间,慢了 8 小时。查了下原来是 openwrt 默认没有安装 zoneinfo,安装后即可。
首先在 web 端或直接修改配置文件:/etc/config/system
中的 zonename 和 timezone 相关参数:
config system
option hostname 'OpenWrt'
option zonename 'Asia/Shanghai'
option timezone 'CST-8'
option ttylogin '0'
option log_size '64'
option urandom_seed '0'
config timeserver 'ntp'
option enabled '1'
option enable_server '0'
list server '0.openwrt.pool.ntp.org'
list server '1.openwrt.pool.ntp.org'
list server '2.openwrt.pool.ntp.org'
list server '3.openwrt.pool.ntp.org'
然后安装对应 zoneinfo:
opkg update
opkg install zoneinfo-asia
重启 system 服务:
/etc/init.d/system restart
然后输出日志日期就正常了。