分类 默认分类 下的文章

创建基础项目

### 安装nestcli
yarn global add @nestjs/cli

### 创建项目
nest new ctnode
.
├── README.md
├── nest-cli.json
├── package.json
├── src
│   ├── app.controller.spec.ts
│   ├── app.controller.ts
│   ├── app.module.ts
│   ├── app.service.ts
│   └── main.ts
├── test
│   ├── app.e2e-spec.ts
│   └── jest-e2e.json
├── tsconfig.build.json
├── tsconfig.json
└── yarn.lock

- 阅读剩余部分 -

创建Linux用户


# 创建用户组
groupadd <userGropName> -g 6000 

# 创建用户并禁止使用shell
useradd <userName> -u 6000 -g 6000 -s /sbin/nologin -d /dev/null

# 创建备份目录
mkdir /home/<pathName>

# 设置权限
chown -R <userName>:<userGropName> /home/<pathName>

# 禁止其他人访问
chmod u+rwx,g+rwx,o-rwx /home/<pathName>

安装并配置netatalk

安装

apt-get install netatalk

修改配置

vim /etc/netatalk/AppleVolumes.default

在末尾加上这么一句:

/home/<pathName> "TMback" options:tm

重启Netatalk服务

sudo service netatalk restart

生成sparsebundle

连接AFP

获取mac地址

ifconfig en0 | grep ether | awk '{print $2}' | sed 's/://g'

获取本地主机名

打开「系统偏好设置-共享」,点击「编辑」按钮,然后复制你的本地主机名(不需要 .local 字符)。

在终端 app 中输入命令


sudo hdiutil create -size <size>g -type SPARSEBUNDLE -nospotlight -volname "Backup of <computer_name>" -fs "Case-sensitive Journaled HFS+" -verbose ~/Desktop/<computer_name>_<mac address>.sparsebundle

其中

替换为第三步中获得的本地主机名, 替换为第四步中获得的 MAC 地址, 设置为备份磁盘的大小 敲击回车键,输入密码,稍等一下,你的桌面上就会生成一个正确的 sparsebundle 文件。 # 连接AFP并上传`sparsebundle`文件 打开访达 app,使用快捷键 ⌘Command+K 来连接到服务器,填入 NAS 对应的 SMB 地址, 并输入 Time Machine 专属账户的用户名和密码。等待成功挂载 Time Machine 共享文件夹后, 将桌面上的 sparsebundle 文件复制到这个文件夹中。 在这一步中,千万要记住要通过访达 app 来上传文件,而不能在 NAS 后台上传。 # 安装并配置`avahi-daemon` `apt-get install avahi-daemon` `vim /etc/avahi/services/afpd.service` 写入以下内容 ``` xml %h_afpovertcp._tcp548_device-info._tcp0model=Xserve ``` 重启avahi-daemon服务 `service avahi-daemon restart` # 开始备份 `sparsebundle`文件上传完毕后,重新打开「系统偏好设置-时间机器」来进行接下去正常的流程操作。 如果你不想等待 Time Machine 自动开始备份,那么你可以直接关掉系统偏好设置的窗口,或者在 Menubar 的时间机器菜单中选择「立即备份」。稍等片刻,你就能看到时间机器开始正常备份了。 ## 参考文档 [一日一技 | 如何解决时间机器在 NAS 上创建备份失败的问题?](https://sspai.com/post/58100) [未能创建备份磁盘映像 sparsebundle 错误45](http://pythonic.zoomquiet.top/data/20130302114227/index.html) [通过afp从Mac连接到ubuntu共享文件](https://sparkydogx.github.io/2018/06/21/connect-ubuntu-server-via-afp/) [低成本搭建Time Machine 服务器](https://zhuanlan.zhihu.com/p/31088141) [低增加samba用户提示Failed to add entry for user](https://blog.csdn.net/minenamewj/article/details/17356703)

创建Linux用户


# 创建用户组
groupadd <userGropName> -g 6000 

# 创建用户并禁止使用shell
useradd <userName> -u 6000 -g 6000 -s /sbin/nologin -d /dev/null

# 创建备份目录
mkdir /home/<pathName>

# 设置权限
chown -R <userName>:<userGropName> /home/<pathName>

# 禁止其他人访问
chmod u+rwx,g+rwx,o-rwx /home/<pathName>

# 设置密码
passwd <userName>

安装并配置samba


# 安装
apt-get install samba

# 备份 smb.conf

cp /etc/samba/smb.conf  /etc/samba/smb.conf.bak

# 编辑配置
vim /etc/s

配置文件如下

[work]
    comment = samba home directory 
    path = /home/user/
    public = yes
    browseable = yes
    public = yes
    read only = no
    valid users = user
    create mask = 0777
    directory mask = 0777 
    force user = nobody
    force group = nogroup
    available = yes
# 增加samba用户
smbpasswd -a <userName>

# 设置密码

# 重新启动samba

service smbd restart

连接

打开访达 app,使用快捷键 ⌘Command+K 来连接到服务器,填入 NAS 对应的 SMB 地址,

参考文档

Ubuntu 16.04安装配置Samba服务

低增加samba用户提示Failed to add entry for user

下载


# 下载UTM
git clone https://github.com/utmapp/UTM.git

# 安装依赖

cd UTM
git submodule update --init --recursive

导入Sysroot

下载Sysroot

如果是在虚拟机里使用,要下载Sysroot-x86_64,如果在手机上使用,下载Sysroot-arm64

把下载好的zip文件夹解压出来的sysroot文件夹放到刚刚clone下来的UTM根目录

build

进入UTM目录,双击运行UTM.xcodeproj文件,打开xcode之后,不用做其他的操作,直接在Signing & Capabilities中选择好证书

左上角选择你要运行的设备,直接运行就可以了

稍后就好自动安装到设备

导入镜像

镜像建议选x86的镜像,其他的镜像可能会导致APP闪退(尝试过ARM的一个镜像),关于如何复制到设备里有蛮多方法的,可以用自带的文档导入,手机的话,可以用隔空投送分享到手机上,放在文档-》我的iPhone下,

创建并启动虚拟机

右上角新建,选择硬盘这里,第一个选择你的镜像,第二个新建一个img镜像来作为硬盘,之后就正常启动安装就可以了

可能会比较卡,如果选的内存较大,可能直接导致APP闪退,建议1024M就可以了

在win10的cmd命令下,我们可以通过wsl命令启动子系统或分发一些命令,所以我们只需要在Windows启动的时候对子系统分发命令即可达到开机自启的目的。

配置自启服务文件

  • 创建并编辑文件/etc/init.wsl
vim /etc/init.wsl

Linux下我们的自启服务通常在/etc/init.d/目录下,假设现在该目录下我们自建了一个sh文件ssh.sh文件,那么我们的init.wsl的内容就可以为:

#! /bin/sh
/etc/init.d/ssh.sh $1
  • 配置权限
    chmod 755 /etc/init.wsl
  • 测试
    sudo /etc/init.wsl [start|stop|restart]

尝试在win10的cmd下启动init.wsl文件

    wsl -d debian -u root /etc/init.wsl start

该命令会在名为debian的wsl 发行版中执行 /etc/init.wsl 文件,如果是Ubuntu,那就把debian 换成Ubuntu

    wsl -d Ubuntu -u root /etc/init.wsl start

配置Windows开机启动

创建一个VBS文件

Set ws = CreateObject("Wscript.Shell")
ws.run "wsl -d Ubuntu -u root /etc/init.wsl start", vbhide

把这个文件拖到win的启动文件夹中即可。