我们总是被各种各样的问题困扰,有时为了解决这一个问题,可能需要话费几小时甚至几天的时间,有的问题确实复杂,而有的问题真得好简单,只是我们当时没有找对方向。
FreeBSD 如何挂载 exFat 分区
前不久入手了一块移动硬盘,考虑到可能会在 windows / Mac / FreeBSD 之间传输,exFat 分区是个不错的选择,windows 和 Mac 都自动识别 exFat,只有 FreeBSD 是需要安装 fusefs-exfat 才能识别
pkg install fusefs-exfat
然后,在 /etc/rc.conf 和 /boot/loader.conf 中各添加一行配置:
# 编辑文件 /etc/rc.conf,添加如下行
fusefs_enable="YES"
# 编辑文件 /boot/loader.conf,添加如下行
fusefs_load="YES"
这些都准备好后,重启系统后就可以正常挂载了:
mount.exfat /dev/da0s1 /mnt
腾讯云 CentOS 主机不断收到系统邮件的问题
腾讯云主机的 CentOS 系统,登录到控制台后经常会收到下面这种邮件,几天不清理可能就上千封
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/root": 7 messages 7 new
>N 1 (Cron Daemon) Wed Mar 10 12:00 25/893 "Cron <root@vps> /usr/local/qcloud/YunJing/YDCrontab.sh"
N 2 (Cron Daemon) Wed Mar 10 12:30 25/893 "Cron <root@vps> /usr/local/qcloud/YunJing/YDCrontab.sh"
N 3 (Cron Daemon) Wed Mar 10 13:00 25/893 "Cron <root@vps> /usr/local/qcloud/YunJing/YDCrontab.sh"
N 4 (Cron Daemon) Wed Mar 10 13:30 25/893 "Cron <root@vps> /usr/local/qcloud/YunJing/YDCrontab.sh"
N 5 (Cron Daemon) Wed Mar 10 14:00 25/893 "Cron <root@vps> /usr/local/qcloud/YunJing/YDCrontab.sh"
N 6 (Cron Daemon) Wed Mar 10 14:30 25/893 "Cron <root@vps> /usr/local/qcloud/YunJing/YDCrontab.sh"
N 7 (Cron Daemon) Wed Mar 10 15:00 25/893 "Cron <root@vps> /usr/local/qcloud/YunJing/YDCrontab.sh"
咨询了客服得到解决方案:
# echo "unset MAILCHECK" >> /etc/profile
# source /etc/profile
# cat /dev/null > /var/spool/mail/root
一周后,再次登录控制台,依然收到几百封同样的邮件,看来之前的这个解决方案没起作用,再次联系客服,得知此邮件信息是云镜检测后进行发送的,关闭邮件发送一般需要关闭此检测任务,考虑云镜进程运行稳定,目前不建议您关闭此任务。
若需要进一步关闭,可将此计划任务转移至其他目录下,但对应的程序进程状况将不再进行检测,无法及时获取云镜进程运行状况。
具体的关闭方法执行以下命令即可:
mv /etc/cron.d/yunjing /root/yunjin.bak
这个云镜是腾讯云的服务器监控组件,作用有点类似乎电脑上的杀毒软件,负责提供黑客入侵检测和漏洞风险预警等安全防护服务,觉得这个监控程序还是比较有用的,解决继续使用,就不关闭它了。在腾讯云的文档中心找到了监控组件的安装与卸载的方法。
安装方法如下:
wget https://imgcache.qq.com/qcloud/csec/yunjing/static/ydeyesinst_linux64.tar.gz -O ydeyesinst_linux64.tar.gz && tar zxvf ydeyesinst_linux64.tar.gz && sh self_cloud_install_linux64.sh
执行完安装命令后查看 YDService,YDLive 进程是否有调用,有调用则安装成功。命令为:
ps -ef | grep YD
如果进程没有起来,可以使用 root 用户手动执行命令,启动程序。命令为:
/usr/local/qcloud/YunJing/YDEyes/YDService
若不再需要主机安全防护,可将其卸载:
/usr/local/qcloud/YunJing/uninst.sh
FreeBSD 执行 portsnap fetch update 出现错误
曾经遇到过几次更新 ports 时出现如下的错误信息
# portsnap fetch update
Fetching 4 metadata patches... done.
Applying metadata patches... done.
Fetching 5 metadata files... gunzip: (stdin): unexpected end of file
metadata is corrupt.
这种情况只要清理一下 ports 缓存就能解决
# rm /var/db/portsnap/tag
FreeBSD 安装 git 出现 pw: user _tss disappeared during update
说来也是奇怪,今天在一台 FreeBSD 服务器上安装 git 时,出现了一个错误:
# pkg install git
...
Checking integrity... done (0 conflicting)
[1/48] Installing tpm-emulator-0.7.4_2...
===> Creating groups.
Using existing group '_tss'.
===> Creating users
Creating user '_tss' with uid '601'.
pw: user '_tss' disappeared during update
pkg: PRE-INSTALL script failed
最后解决的办法却是出奇的简单,输入命令 vipw,然后直接 :wq 保存退出,最后再重新安装 git 就可以了。
# vipw
# pkg install git
FreeBSD 无线网卡配置
一台老的笔记本电脑一直闲置着,打算装上 FreeBSD ,但 Thinkpad 内置无线网卡博通 BCM43142 无法被 FreeBSD 识别,最后索性换个网卡,本来要换块高通的,可受 Thinkpad BIOS 白名单的限制,只能买了块 Intel 2230 的网卡,好在一些正常,顺利连上网。
- 首先确定网卡名称
# dmesg | grep Wireless
iwn0: <Intel Centrino Wireless-N 2230> mem 0xf2d00000-0xf2d01fff irq 17 at device 0.0 on pci2
- 编辑 /boot/loader.conf 文件,载入所需模块
if_iwn_load="YES"
iwn2000fw_load="YES"
iwn2030fw_load="YES"
iwn2230fw_load="YES"
- 编辑 /etc/wpa_supplicant.conf 文件,设置 Wi-Fi 名称和密码
ctrl_interface=/var/run/wpa_supplicant
eapol_version=2
ap_scan=1
fast_reauth=1
network={
ssid="无线网名称"
psk="无线网密码"
}
- 编辑 /etc/rc.conf 文件,绑定网卡
wlans_iwn0="wlan0"
#如果使用固定 IP 地址:
ifconfig_wlan0="WPA inet 192.168.1.10/24";
# 如果使用 dhcp 分配:
ifconfig_wlan0="WAP dhcp"
defaultrouter="192.168.1.1"
- 重启网络
# service netif restart
# /etc/netstart
GitHub 常用命令
- 设置 user.name 和 user.email
git config --global user.name "输入你的用户名"
git config --global user.email "输入你的邮箱"
#查看结果
git config --list
- 将文件添加到暂存区中
#仅添加 README.md 文件
git add README.md
#添加所有 c 文件
git add *.c
#添加当前目录下的所有文件
git add .
- 将暂存区中的内容提交到当前分支
#仅提交filename文件
git commit -m "msg of commit" filename
#提交 stage 中所有内容
git commit -m "msg of commit"
#提交所有修改的内容(无需 git add)
git commit -a -m "msg of commit"
- 比较版本区别
#比较文件在暂存区和工作区的差异
git diff
#查看工作区和本地仓库的差别
git diff HEAD
#查看这一版本的代码和上一版本的代码区别
git diff HEAD^
#查看这一版本的代码和上 n 版本的代码区别
git diff HEAD~n
- git 分支
#新建分支
git branch <newbranch>
#切换到分支
#注意:在切换分支前,先进行一次 commit,否则修改的文件会被带过来
git checkout <branch>
#新建分支并切到新分支
git checkout -b <newbranch>
- 个人访问令牌的使用
从 2021 年 8 月 13 日开始,Git 操作进行身份验证时不再接受帐户密码,并将要求使用基于令牌(token)的身份验证。
1. 打开Github,在个人设置页面,找到【Setting】,然后打开找到【Devloper Settting】然后,选择个人访问令牌【Personal access tokens】,然后选中生成令牌【Generate new token】。
2. 生成token后,记得把你的token保存下来,以便进行后面的操作。把token直接添加远程仓库链接中,这样就可以避免同一个仓库每次提交代码都要输入token了。
git remote set-url origin https://<your_token>@github.com/<USERNAME>/<REPO>.git
<your_token>:换成你自己得到的 token
<USERNAME>:是你自己 github 的用户名
<REPO>:是你的仓库名称
- 一些使用技巧
#筛选出仓库中有变化的文件,并复制到指定文件夹中
git status --porcelain | awk '$1 ~ /^[MADRC]/ {print $2}' | xargs -I {} cp {} /path/to/destination/