Centos, RockyLinux 常用软件安装汇总

一、基本指令:
命令 作用
clear 清屏
pwd 显示当前路径
cat / more 显示文本文档
uname -a 查看当前版本
hostnamectl 查看当前版本
cat /etc/redhat-release 查看当前版本
free 查看剩余内存
df -h 查看磁盘剩余空间
du -sh 查看文件夹名"dir"占用的空间
lsof -i:8080 查看8080端口是否被占用
find . -name "filename.txt" 搜索filename.txt文件,包括子目录
groupadd abc 创建一个名为abc的用户组
useradd -g abc abc 在abc组里添加一个名为abc的用户
chown -R sammy ~/dir 将目录dir的拥有者设为用户sammy
cut -d : -f 1 /etc/passwd 查看所有用户
cat /etc/grou 查看所有用户组
tail -n 20 filename 显示filename最后20行
chmod -R 777 dir 将目录dir整体变为777
rm -rf dir 整体删除dir
cp -r -a ./* /dir 将当前路径下所有文件包括子目录全部拷贝到dir
tar -xvzf filename 解压缩gz文件
gzip -d filename 解压缩gz文件
unzip -x filename 解压缩zip文件
zip -r filename.zip ./* 压缩当前目录下全部内容
rpm -ivh filename 安装一个包
rpm -Uvh filename 升级一个包
rpm -e 卸载一个包
nohup cmds >/dev/null 2>&1 & 无任何输出或log,在后台运行一个cmds指令

二、小窍门篇
带参数的alias快捷命令:

nano ~/.bashrc

输入以下内容:

bash 复制代码
alias psa="psa"
psa()
{
    ps -A|grep $@
}

存盘退出,执行:
source ~/.bashrc

生效后输入例如:psa bash (就相当于ps -A|grep bash)


简便的开机自启动方法:

crontab -e (输入这条指令后会自动打开默认编辑器,一般是vim)

然后输入:

bash 复制代码
@reboot sleep 5;/root/autoexec.sh

存盘退出。

意思是:每次系统重启后,执行autoexec.sh脚本。


分区 & 格式化
  1. 先看看有几个物理硬盘:
    fdisk -l
  2. 选择一个物理硬盘来分区
    fdisk /dev/vdb1 (我这里为vdb1)
  3. 进去后使用的是快捷命令:
    p : 查看当前分区
    d:删除当前分区
    n:创建一个新的分区
    w: 存盘退出(所有改动生效)
    q: 不存盘、退出(所有改动不生效,安全)
    一个一个子分区先删除干净之后才能建立新分区

如果是新硬盘,一般来说的默认操作流程是:

Created a new DOS disklabel with disk identifier : 选n

Select (default p): 选(p)主分区

Partition number (1-4, default 1): 选(1)个分区

First sector (2048-419430399, default 2048): 直接敲回车 (起始扇区)

Last sector, +sectors or +size{K,M,G,T,P} (2048-419430399, default 419430399): 直接敲回车

Command (m for help): p (查看一下分区设置)

Command (m for help): w (写入)

格式化:
mkfs.ext4 /dev/vdb1 (等待命令执行完成)

  1. 挂载新硬盘到操作系统的某个节点上
    mkdir /data
    mount /data /dev/vdb1

  2. 大功告成后,可用 df -h 指令再查看查看


安装Aapache:
  1. yum install httpd.x86_64 (安装)
  2. systemctl start httpd.service (启动)
  3. systemctl enable httpd.service (自启)

然后到浏览器那边测试一下:http://服务器ip

会出现一个Testing 1.2.3的测试页。

Apache的主页默认路径: /var/www/html/

Apache的主设置文件路径:/etc/httpd/conf/httpd.conf


安装PHP:

dnf groupinstall 'PHP Support' -y (安装)
systemctl restart httpd.service (重启一下Apache即可)

安装mysql支持(mariadb):

dnf install mariadb-server mariadb -y
systemctl start mariadb
systemctl enable mariadb

MySQL初始密码问题

忘记root密码,root权限被意外剥夺,看不到mysql表这种情况:

  1. systemctl stop mariadb.service (先关服务)
  2. /usr/bin/mysqld_safe --skip-grant-tables & (进入安全模式)
  3. mysql -uroot (不需要密码,直接进人)
  4. show databases;可以看到mysql表了
  5. use mysql;
  6. update user set password=password('yournewpasswordhere') where user='root';
  7. flush privileges;

vsFTP 安装:

请访问我的另一篇博文:

https://blog.csdn.net/rockage/article/details/133759477?spm=1001.2014.3001.5502


全新安装官方版MySQL:

以下为全新安装Oracle官方原版MySQL的方法:

1:为yum指令添加源

先搞清楚到底要下载哪个源,用指令:uname -a

看看服务器版本号,我这边显示的是el7

然后去这个网址:

MySQL :: Download MySQL Yum Repository

下载一个:mysql57-community-release-el7-11.noarch.rpm (对应之前的el7)

注意:如果是Centos 6,需要下载针对el6内核使用的rpm

然后用鼠标右键点击下载链接,复制绝对地址,直接用wget指令下载

(如果实在找不到绝对地址,也可以先用浏览器下载到本地再FTP到服务器也一样):

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

然后执行以下指令:

rpm -Uvh mysql57-community-release-el7-11.noarch.rpm

这个动作很快,就几秒钟的事儿。

  1. 安装MySQL
    有了源之后,就可以用这个指令安装了:
    yum install mysql-community-server
    注意这个过程非常漫长,要有耐心。

装完之后会有一个小结,如果原机装有Mariadb或者旧版MySQL的话,可以看到

Replaced:

mysql-libs.i686 0:5.1.73-8.el6_8

会被新装这个MySQL替换(Replaced)掉。

  1. 启动服务

    装完后,用以下指令开启MySQL服务:

    systemctl start mysqld.service

    systemctl enable mysqld.service (自启动)

    systemctl status mysqld.service (查看状态)

    这一步也是有可能出问题的,如果之前旧的Maroadb或MySQL在/var/lib/ 下面有mysql目录(这是mysql主数据目录,所有的数据库、表之类都存放于此),则会报错:

    initialize specified but the data directory has files in it. Aborting.

    好在这个问题不难解决,删除这个数据目录:

    rm -rf /var/lib/mysql

    删除之后,不能再去手动建立,只要执行mysql,程序会自动创建。

  2. 初始化设置

    在上面的安装过程中,产生了一个临时密码,在/var/log/mysqld.log文件里,

    第一步是让它高亮出来:

    grep 'temporary password' /var/log/mysqld.log

    记下这个密码。

用刚才那个临时密码登陆:

mysql -uroot -p

进去之后用这个指令改变初始密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';

如果显示: Your password does not satisfy the current policy requirements

这不是大问题,只是说明密码强度不够,再想一个复杂一点的密码即可。

  1. 设置远程访问

    现在整个儿MySQL基本就已经装好了,但是仅限于本地使用(对于BS结构的程序来说够了)

    如果还需要用Navicat等工具远程登陆,或者一些CS结构的软件,还需要做下一步:

    mysql -uroot -p (首先进入mysql服务器,用刚才设置的新密码)

    mysql>use mysql;

    mysql>update user set host = '%' where user = 'root'; (将root帐号的host改为%也就是说任意客户端皆可访问)

    mysql>FLUSH PRIVILEGES; (全局刷新一下就OK了,现在再试试Navicat应该就能连通了)

  2. 在已经设置了root密码的情况下重新修改root密码的方法(忘记了root密码怎么办):

    首先要进入安全模式

    systemctl stop mysqld.service (先关mysql服务)

    nano /etc/my.cnf (修改mysql配置文件)

    加入一行:

    skip-grant-tables

    存盘退出

    systemctl start mysqld.service (启动mysql)

    mysql -uroot -p (不需要密码直接进入)

    use mysql;

    update mysql.user set authentication_string = PASSWORD('123456') where User='root';

    FLUSH PRIVILEGES;

    quit;

    从mysql命令行模式出来之后,

    systemctl stop mysqld.service (先关闭mysql)

    nano /etc/my.cnf

    去掉skip-grant-tables这一行,或者在前面加个#号注释掉 (恢复mysql正常工作状态)

    存盘退出。

    systemctl start mysqld.service (再重启mysql即可)


NodeJS 安装

方法一:

通过dnf仓库安装nodejs和cnpm (cnpm源自淘宝,比原版npm快)
dnf install -y nodejs.x86_64
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install forever -g (示例:用cnpm装一个forever)


方法二:手动安装最新(任意版本)的nodejs:

  1. dnf -y remove nodejs (先卸载系统自带的nodejs)

  2. 访问:https://github.com/nvm-sh/nvm 获取最新nvm安装脚本

  3. curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash

  4. 关闭窗口再开一个新的SSH, 执行:

    bash 复制代码
    nvm list-remote (列出所有node.js版本)
    nvm install v20.9.0
    npm install --global yarn (顺便装一个yarn)

解决electron报错的问题,执行:
bash 复制代码
export ELECTRON_MIRROR=https://npm.taobao.org/mirrors/electron/

yarn add electron -W

Java JDK环境安装
  • 首先查看现有的java安装路径,判断是java11还是17:
    readlink -f $(which java)
    或者:
    dirname $(dirname $(readlink -f $(which java)))

  • 安装java 17

    bash 复制代码
    dnf search jdk | egrep -- '-17'
    sudo dnf install java-17-openjdk java-17-openjdk-devel
    sudo alternatives --config java
  • Java 参数
    export JAVA_OPTS=-Xmx5g
    export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-17.0.9.0.9-2.el9.x86_64


gcc 11.4.0 安装
bash 复制代码
1. dnf install -y wget bzip2
2. wget https://mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-13.2.0/gcc-13.2.0.tar.gz
3. tar xf gcc-13.2.0.tar.gz
4. cd gcc-13.2.0
5. ./contrib/download_prerequisites
6. mkdir build && cd build
7. ../configure --enable-languages=c,c++ --disable-multilib --prefix=/usr/local/gcc-13.2.0
8. make -j$(nproc) &&  make install (-j表示多核编译)
9. nano /root/.bashrc
10. export PATH=/usr/local/gcc-13.2.0/bin:$PATH
11. export LD_LIBRARY_PATH=/usr/local/gcc-13.2.0/lib64:$LD_LIBRARY_PATH
12. source /root/.bashrc

查看结果:
strings /usr/local/gcc-13.2.0/lib64/libstdc++.so.6 | grep GLIBCXX


GNOME环境安装 + VNC服务器安装
  • Step 1 . 安装 GNOME 桌面
    dnf groupinstall -y "Server with GUI"
    reboot (重启)

  • Step 2 . 安装 TigerVNC Server

    bash 复制代码
    1. dnf install -y tigervnc-server
    2. cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
  • Step 3 . 首先以 root 账户登录,创建1个VNC帐号(本例为用户名 rockage ) 并设置密码
    useradd -c "VNC for Rockage" rockage
    passwd rockage

  • Step 4 --- 设置 VNC Service

    1. exit (退出当前 root 账号)
    2. 重新登录,用户名为 rockage (登录密码为刚才生成那个)
    3. 输入:vncpasswd (输入vnc访问密码,注意和登录密码的区别)
    4. exit (退出当前 rockage 账号)
    5. 重新登录,用户名为 root
    6. 输入:
    bash 复制代码
    cp /etc/tigervnc/vncserver-config-defaults /home/rockage/.vnc/config
    1. 编辑文件:nano /home/rockage/.vnc/config
    bash 复制代码
    session=gnome
    securitytypes=vncauth,tlsvnc
    desktop=sandbox
    geometry=2000x1200
    alwaysshared
    1. 编辑文件:nano /etc/tigervnc/vncserver.users
    bash 复制代码
    :1=rockage
    1. 让设置生效:
    bash 复制代码
    systemctl daemon-reload
    systemctl start vncserver@:1.service
    systemctl enable vncserver@:1.service
  • Step 5 . 设置防火墙

    开启防火墙:systemctl start firewalld

    开放5901端口:

    bash 复制代码
    firewall-cmd --permanent --zone=public --add-port=5900-5901/tcp

    你可能会问,为啥是5901?因为TigerVNC自身使用5900端口,而每一个VNC用户又都拥有自己的独立端口号,规定以 "5900+VNC用户编号" 为原则,刚才配置文件编号是1,那么这个独立进程的端口就是5900+1

    刷新防火墙设置
    firewall-cmd --reload

    如果总是报错或者连不上,可以用systemctl stop firewalldsystemctl disable firewalld, 干脆把防火墙先关再试试。

  • 用nftables设置防火墙:

    Centos8已经全面使用nftable了,也比较简单:

    首先创建一个 nft 脚本比如:nano test.nft,复制以下内容:

    bash 复制代码
    flush ruleset
    table inet filter {
            chain input {
                    type filter hook input priority 0; policy drop;
                    ct state established,related accept
                    ct state invalid drop
                    iif lo accept
                    ip protocol icmp icmp type { destination-unreachable, router-solicitation, router-advertisement, time-exceeded, parameter-problem } accept
                    ip protocol igmp accept
                    #放行端口:
                    tcp dport { 5000,5001, 3306, 8080, 3000, http, https} accept
            }
            chain forward {
                    type filter hook forward priority 0; policy drop;
            }
            chain output {
                    type filter hook output priority 0; policy accept;
            }
    }

    存盘退出。

    用:nft -f test.nft 加载即可。

  • Step 6 . 使用VNC客户端软件

    下载地址:http://www.onlinedown.net/soft/251613.htm

    安装很简单,一直下一步即可,打开主界面也没什么可设置的,直接在地址框输入你的服务器IP:5901,如127.0.0.1:5901 ,输入完毕后点 Connect 即可。


Chrome 安装

下载:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

然后用rpm安装:
rpm -ivh google-chrome-stable_current_x86_64.rpm

基本上会报一堆错误,例如:

warning: google-chrome-stable_current_x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 7fac5991: NOKEY

error: Failed dependencies:

/usr/bin/lsb_release is needed by google-chrome-stable-74.0.3729.131-1.x86_64

libXss.so.1()(64bit) is needed by google-chrome-stable-74.0.3729.131-1.x86_64

libappindicator3.so.1()(64bit) is needed by google-chrome-stable-74.0.3729.131-1.x86_64

liberation-fonts is needed by google-chrome-stable-74.0.3729.131-1.x86_64

不要着急,报错是正常的流程之一,现在用repoquery命令一个一个分析,比如:
repoquery --nvr --whatprovides libappindicator3.so.1

系统显示:
libappindicator-gtk3-12.10.0-13.el7

发现少了这个包,那么我们直接用dnf去安装:
dnf install libappindicator-gtk3-12.10.0-13.el7 -y

其他依葫芦画瓢都这么一个一个用dnf安装即可,唯一需要注意的是,/usr/bin/lsb_release 这个包是这样安装的:
dnf install *lsb* -y

对于我的系统而言,我需要安装以下包:

bash 复制代码
yum install libXScrnSaver-1.2.2-6.1.el7 -y
yum install libappindicator-gtk3-12.10.0-13.el7 -y
yum install liberation-fonts-1.07.2-16.el7 -y
yum install *lsb* -y

装完之后,再输入一遍:
rpm -ivh google-chrome-stable_current_x86_64.rpm

这回终于不报错了,安装成功。

回到桌面,发现桌面的 Internet 分类里已经有了 Chrome 的图标了。

如果无法启动,说明你现在使用的是root账户,因为chrome默认是不能给root用户运行的。打开文件管理器,找到 /usr/share/applications/路径下的Chrome图标,右键属性,然后把Command改成:
/usr/bin/google-chrome-stable %U --no-sandbox

或者直接在桌面的Terminal里面用命令行启动:
/usr/bin/google-chrome-stable --no-sandbox


CentOS 7 开机自动启动脚本的方法
1、创建脚本

在 /usr/lib/systemd/system 下面创建一个文件,这个文件名即是我们要设置的服务,例如现在想自定义一个服务rockage:
nano /usr/lib/systemd/system/rockage.service

在此文件中输入以下内容:

bash 复制代码
[Unit]
Description=rockage
After=network.target
	 
[Service]
Type=forking
ExecStart=启动命令或脚本
ExecReload=重新启动的命令或脚本
ExecStop=停止运行的命令或脚本
PrivateTmp=true
	 
[Install]
WantedBy=multi-user.target

存盘退出。
ExecStart,ExecReload,ExecStop 这三个选项分别对应启动、重启、停止,如果命令够简单的话,直接输入就行了,一个命令不够,中间还可以用&&连接。如果命令行实在太复杂或者还需要做逻辑判断等,将需要运行的指令放到一个可执行脚本里,标明脚本路径即可。

注意:Type=forking 这行的意思是,像 nginx 那种输入命令后程序本身就可以自动驻留内存的就用forking。而其他前台程序,就是指那些运行完毕后(或者按下CTRL+C)不自动驻留内存的程序,最简单的比如说 ls 这一类,此处就用Type=simple


2、实际案例

举一个实例,比如我的Start、Reload、Stop分别对应3个脚本:

bash 复制代码
ExecStart=/root/myweb/start.sh
ExecReload=/root/myweb/restart.sh
ExecStop=/root/myweb/stop.sh

查看一下Start脚本,cat /root/myweb/start.sh

bash 复制代码
	#!/bin/bash
	forever start ./bin/www

此脚本自动运行node.js的forever,作用是将nodejs制成的网站置于后台运行。注意,服务脚本第一行是 #! ,这不是注释,而是标明这个脚本是由哪个shell 来执行,如我们经常见到的 #!/bin/bash,这表示此脚本由bash来解析。


3、脚本调试

输入以下命令:

bash 复制代码
systemctl daemon-reload
systemctl start rockage

如果出现绿色的:Active: active (running),说明正常,如果是红色的则表示运行有误,需要排查,另外还可以通过:
journalctl -fu rockage

命令查看完整 log 以定位故障点。一切无误后,输入:

bash 复制代码
systemctl enable rockage

将 rockage 写入系统服务,这样每次重启后系统将自动运行它。


4、进阶篇

查看service启动顺序:
systemctl list-dependencies

<可选项 --after service-name--before service-name> ,

例如:systemctl list-dependencies --after rockage

查看所有已启动的服务:
systemctl list-units --type=service

或者
systemctl list-units --type=target

在service里设定环境变量:

注意:service 里的环境变量和系统环境变量是独立的,如果某些程序需要依赖环境变量的话,必须单独在 service 文件的 Service 一节里显式标记:

  • 方法1直接添加:
    Environment="PATH=/usr/local/bin:/usr/bin:/bin"
  • 方法2用文件添加:
    EnvironmentFile=/etc/my_service.env

5、systemctl 命令汇总
bash 复制代码
systemctl start service-name (启动)
systemctl stop service-name(停止)
systemctl restart service-name(重启)
systemctl enable service-name (设为自启动)
systemctl disable service-name (取消自启动)
systemctl mask service-name (完全屏蔽自启动)
systemctl status service-name (服务状态)
journalctl -fu service-name (完整的服务状态log)

6、一个不太常见的坑:

如果系统总是报告这个错误:

/usr/lib/systemd/system/rockage.service:5 Missing '='.

多半是由于文件没有以utf8保存导致。

这种情况下,随便在 /usr/lib/systemd/system/ 目录下找个"模板", cp 复制成你自己的,再重新编辑就好。


NextCloud 私有云安装

参考我的博文:
https://blog.csdn.net/rockage/article/details/99216552


Syncthing 云同步

cat /proc/version 查看系统版本(我的是64位)

访问:
https://syncthing.net/downloads/

下载64位Linux版并解压:

bash 复制代码
wget https://github.com/syncthing/syncthing/releases/download/v1.8.0/syncthing-linux-amd64-v1.8.0.tar.gz
tar zxf syncthing-linux*
cd syncthing-linux*
cp syncthing /usr/local/bin
syncthing (启动Syncthing)

出现INFO: Detected 0 NAT services 的时候,

按CTRL+C退出程序,编辑配置文档:
nano /root/.config/syncthing/config.xml

搜索:127.0.0.1:8384 改为 0.0.0.0:8384

存盘退出。

重新启动Syncthing,输入:

bash 复制代码
syncthing

这次不要按CTRL+C退出,直接去浏览器访问8384端口:

比如:http://127.0.0.1:8384 ,如果能出现WebUI,说明工作正常。


Windows 客户端

下载SyncTrayzor:https://github.com/canton7/SyncTrayzor/releases/tag/v1.1.24

安装后进入SyncTrayzor,删除默认的Default Forder,新建一个Sync的共享目录,物理地址是:D:\Sync


Syncthing 设置

我的实际情况是,需要同步公司电脑和家里电脑的数据,因为这两台电脑都做不到永不关机,因此需要通过一台VPS来做中转:

注意:本质上来说,Syncthing 并没有服务器/客户端的概念,任何一个节点既是服务器也是客户端,因为本例用了一台VPS作为一个永不关机的常备,姑且把它称为服务器。

现在,打开浏览器,输入VPS地址:http://ip:8384

在服务器的WebUI进行设置,删除默认的Default forder,新建一个Sync的共享目录,物理地址是:/root/Sync

添加远程设备:

  1. 此处的"远程设备"概念,是指HOME-PC,这里的当前设备是指 VPS
  2. 那么我们如何知道HOME-PC的ID? - 现在回到HOME-PC的SyncTrayzor - 点右上角的操作 - 显示ID,把这一串字符串复制起来
  3. 把刚才得到的字符串粘贴到添加远程端这个项目里, 在【共享】里有一个"选择与该设备共享的文件夹",勾选Sync
  4. 页面不要关闭,等一下还要从这里拷贝VPS的ID

现在回到家里的电脑,也就是HOME-PC这边

  1. 打开SyncTrayzor
  2. 添加远程设备,现在的远程设备倒过来了是指VPS,当前设备是指HOME-PC
  3. 回到浏览器,切换到服务器的WebUI界面,同样的地方,点操作,点显示ID,并把这一行字符串粘贴过来
  4. 同样的,在【共享】里,勾选Sync
  5. 如果有其他的台式机(例如COMPANY-PC),一样依葫芦画瓢按此操作即可

问题篇
  1. Windows在启动SyncTrayzor的时候,如果报:

WARNING: Failed to initialize config: Config file version (31) is newer than supported version (29). If this is expected

去官网下载最新版的syncthing.exe,拷贝到:C:\Users\rocka\AppData\Roaming\SyncTrayzor里即可

  1. 各种设置都OK了,但是在同步的时候卡住不动怎么办?
    设置一下D:\Sync文件夹的权限,让本机USER对它有全部读写权限即可。

如何后台运行?

VPS上如果用CTRL+C中断Syncthing的命令行窗口,服务将终止,后台运行方法:

bash 复制代码
nohup syncthing &> /dev/null &

这种情况下如果需要退出,用 killall syncthing (杀掉syncthing 进程)即可。


如何将Syncthing注册为一个服务?

开机启动脚本在这个位置:

/安装包解压路径/syncthing-linux-amd64-v1.8.0/etc/linux-systemd/system

将这个文件拷贝到系统服务里(我在/root/syncthing下解压的安装包):

bash 复制代码
cp /root/syncthing/syncthing-linux-amd64-v1.8.0/etc/linux-systemd/system/syncthing@.service /usr/lib/systemd/system

将Syncthing设为root用户的专属服务:

bash 复制代码
mv /usr/lib/systemd/system/syncthing@.service /usr/lib/systemd/system/syncthing@root.service

编辑这个文件:
nano /usr/lib/systemd/system/syncthing@root.service

将:

bash 复制代码
ExecStart=/usr/bin/syncthing -no-browser -no-restart -logflags=0

改为:

bash 复制代码
ExecStart=/usr/local/bin/syncthing -no-browser -no-restart -logflags=0

存盘退出。

执行以下命令:

bash 复制代码
systemctl daemon-reload
systemctl restart syncthing@root  (启动服务)
systemctl enable syncthing@root (设为开机启动)

Windows客户端不采用SyncTrayzor的方案:

注意:此方案不需要安装SyncTrayzor,很轻量,

默认Sync配置文件和数据库在:
C:\Users\rocka\AppData\Local\Syncthing

将它Copy到其他位置,比如:
D:\SyncRoot

用记事本编辑一个文本文档:

bash 复制代码
@ECHO OFF
%1 start mshta vbscript:createobject("wscript.shell").run("""%~0"" ::",0)(window.close)&&exit
start /b syncthing.exe -config="D:\SyncRoot\Syncthing.conf" -data="D:\SyncRoot\Syncthing.conf\index-v0.14.0.db" -no-browser

存盘为一个批处理文件,比如:start-sync.bat

再将这个bat文件设为自启动即可,

如果需要进入UI,浏览器访问:http://127.0.0.1:8384/就行了


FAQ
  1. 如果进入管理UI的时候,总是报错: failed to setup inotify handler.

编辑文件:nano /etc/sysctl.conf

加一行:

bash 复制代码
fs.inotify.max_user_watches=204800

就可以了,需要重启。


点评篇

前后用过Seafile 和 Nextcloud方案,这两者都是正儿八经的云盘,功能繁多,但是体型也很庞大,部署起来很麻烦。如果应用场景仅仅是需要同步一下公司电脑和家里电脑的话,犯不上用这两者。Syncthing不是云盘,它就是一个同步器,可以让你在公司没干完的活同步到家里的电脑里继续完成。轻量、简单、部署方便,关键是传输速度比前两者快!


临时使用Nginx分享文件:

在nginx.conf 里增加一节: location /files { }

bash 复制代码
events {
    worker_connections  1024;
}

http {
  server {
         listen       80;
         server_name  localhost;
         root  html;

         location /files {
         autoindex on;
         autoindex_exact_size off;
         autoindex_localtime on;
         alias  /usr/local/nginx/html/files/;
         charset utf-8;
         }

   }
}

新建一个目录: /usr/local/nginx/html/files

将需要共享的文件或者目录 ln 到 /usr/local/nginx/html/files

比如: ln /home/data /usr/local/nginx/html/files/data

注意权限,否则只能显示无法下载(报403错误):

chown -R www:www /home/data

然后用浏览器访问: http://你的网站地址或IP地址/files 即可

相关推荐
A小辣椒7 小时前
TShark:基础知识
linux
AlfredZhao9 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334661 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪1 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5202 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩2 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
古城小栈2 天前
Unix 与 Linux 异同小叙
linux·服务器·unix