Centos, RockyLinux 常用软件安装汇总

news2024/10/6 20:34:29

在这里插入图片描述

一、基本指令:
命令作用
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
输入以下内容:

alias psa="psa"
psa()
{
    ps -A|grep $@
}

存盘退出,执行:
source ~/.bashrc
生效后输入例如:psa bash (就相当于ps -A|grep bash)


简便的开机自启动方法:

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

@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 (等待命令执行完成)
4. 挂载新硬盘到操作系统的某个节点上
mkdir /data
mount /data /dev/vdb1
5. 大功告成后,可用 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, 执行:
    nvm list-remote (列出所有node.js版本)
    nvm install v20.9.0
    npm install --global yarn (顺便装一个yarn)
    

解决electron报错的问题,执行:
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
    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 安装
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

    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. 输入:
    cp /etc/tigervnc/vncserver-config-defaults /home/rockage/.vnc/config
    
    1. 编辑文件:nano /home/rockage/.vnc/config
    session=gnome
    securitytypes=vncauth,tlsvnc
    desktop=sandbox
    geometry=2000x1200
    alwaysshared
    
    1. 编辑文件:nano /etc/tigervnc/vncserver.users
    :1=rockage
    
    1. 让设置生效:
    systemctl daemon-reload
    systemctl start vncserver@:1.service
    systemctl enable vncserver@:1.service
    
  • Step 5 . 设置防火墙
    开启防火墙:systemctl start firewalld
    开放5901端口:

    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,复制以下内容:

    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
对于我的系统而言,我需要安装以下包:

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
在此文件中输入以下内容:

[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个脚本:

ExecStart=/root/myweb/start.sh
ExecReload=/root/myweb/restart.sh
ExecStop=/root/myweb/stop.sh

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

	#!/bin/bash
	forever start ./bin/www

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


3、脚本调试

输入以下命令:

systemctl daemon-reload
systemctl start rockage

如果出现绿色的:Active: active (running),说明正常,如果是红色的则表示运行有误,需要排查,另外还可以通过:
journalctl -fu rockage
命令查看完整 log 以定位故障点。一切无误后,输入:

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 命令汇总
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版并解压:

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,输入:

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的命令行窗口,服务将终止,后台运行方法:

nohup syncthing &> /dev/null &

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


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

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

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

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

cp /root/syncthing/syncthing-linux-amd64-v1.8.0/etc/linux-systemd/system/syncthing@.service /usr/lib/systemd/system

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

mv /usr/lib/systemd/system/syncthing@.service /usr/lib/systemd/system/syncthing@root.service

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

ExecStart=/usr/bin/syncthing -no-browser -no-restart -logflags=0

改为:

ExecStart=/usr/local/bin/syncthing -no-browser -no-restart -logflags=0

存盘退出。
执行以下命令:

systemctl daemon-reload
systemctl restart syncthing@root  (启动服务)
systemctl enable syncthing@root (设为开机启动)

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

注意:此方案不需要安装SyncTrayzor,很轻量,
默认Sync配置文件和数据库在:
C:\Users\rocka\AppData\Local\Syncthing
将它Copy到其他位置,比如:
D:\SyncRoot
用记事本编辑一个文本文档:

@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

加一行:

fs.inotify.max_user_watches=204800

就可以了,需要重启。


点评篇

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


临时使用Nginx分享文件:

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

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 即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1201140.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

未来的拥塞控制与 Linux EEVDF 调度器

有破要有立。 前面提到 经典端到端拥塞控制将越来越失效&#xff0c;未来该如何&#xff0c;谈谈我的看法。 端到端拥塞控制的难点根本上是要解决公平性问题&#xff0c;顺带着提高资源利用率。我们很容易理解&#xff0c;在共享资源场景下&#xff0c;不公平一定是低效的&am…

在AutoDL云环境上训练Stable Diffusion Lora模型

AutoDL官网&#xff1a; AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDLAutoDL为您提供专业的GPU租用服务&#xff0c;秒级计费、稳定好用&#xff0c;高规格机房&#xff0c;7x24小时服务。更有算法复现社区&#xff0c;一键复现算法。https://www.autodl.com/ 新建实例…

优酷网页截图黑屏及了解浏览器图形服务API-meethigher

一、背景 周六跟同事逛了上海的豫园、城隍庙、静安寺、静安公园。豫园门票40&#xff0c;相传是明代私人园林&#xff0c;园主人为当年的四川布政使&#xff0c;是江南风格古典园林&#xff0c;风景还不错。 周日天气降温&#xff0c;直接睡了一天&#xff0c;想起同事推荐的《…

springboot项目使用Swagger3

一、Swagger介绍 号称世界上最流行的Api框架&#xff1b;Restful Api 文档在线自动生成工具>Api文档与API定义同步更新直接运行&#xff0c;可以在在线测试API 接口支持多种语言&#xff1a;&#xff08;java&#xff0c;Php…&#xff09; 二、Swagger3 准备工作 1、在p…

【文件IO】

文章目录 File常见方法和属性属性构造方法方法 InputStream方法FileInputStream OutputStream利用 OutputStreamWriter 进行字符写入 总结按字节读取数据按字节写入数据按字符读取数据按字符写入数据 File常见方法和属性 属性 修饰符及类型属性说明static StringpathSeparato…

JavaScript从入门到精通系列第三十五篇:JavaScript中的DOM简介

文章目录 前言 1&#xff1a;对象分类 2&#xff1a;宿主对象 一&#xff1a;DOM 1&#xff1a;dom简介 2&#xff1a;Dom概念图示 二&#xff1a;节点 1&#xff1a;节点概述 2&#xff1a;常用节点分类 3&#xff1a;节点模型示意图 4&#xff1a;节点属性 5&…

Java 之 IO/NIO/OKIO

BIO blocking io AIO Asynchronous IO 从内存读取到写入--输出 从外部到内存 -- 输入 OutputStream //文件不存在则自动创建 try {OutputStream outputStream new FileOutputStream("text.txt");outputStream.write(a);outputStream.write(b);} catch (IOExcep…

若依Linux与Docker集群部署

若依Linux集群部署 1. 若依2.MYSQL Linux环境安装2.1 MYSQL数据库部署和安装2.2 解压MYSQL安装包2.3 创建MYSQL⽤户和⽤户组2.4 修改MYSQL⽬录的归属⽤户2.5 准备MYSQL的配置⽂件2.6 正式开始安装MYSQL2.7 复制启动脚本到资源⽬录2.8 设置MYSQL系统服务并开启⾃启2.9 启动MYSQL…

终止进程后,GPU显存仍被占用问题 | kill -9彻底杀死进程 | ps aux|grep python

本文部分内容参考博客&#xff0c;十分感谢&#xff01;&#xff01;&#xff01; 问题描述&#xff1a;在Linux终端把进程终止后&#xff0c;发现显存没有被释放出来&#xff01; ---------------------------------------------------------------------------------------F…

Git分支与Git标签的介绍及其场景应用

目录 一、Git分支 1.1 定义 1.2 基本概念 1.3 特点与优势 1.4 Git分支操作命令 1.4.1 查看分支 1.4.2 创建分支 1.4.3 删除分支 1.4.4 切换分支 1.4.5 创建并切换到新建分支 1.5 场景应用 1.5.1 前期准备 1.5.2 具体操作 二、Git标签 2.1 定义 2.2 类型 2.3 标…

Some/IP学习笔记

目录 1.概述 2.SOME/IP 报文格式 3.数据结构序列化 1.概述 SOME/IP全称为Scalable Service Oriented MiddlewarE Over IP&#xff0c;是车载以太网技术中的核心内容&#xff0c;它为网络提供了面向服务的通信方式。一个服务可以包含0个或者多个事件&#xff08;events&#…

【C++ 学习 ㉟】- 异常详解

目录 一、C 异常处理的基本语法 1.1 - 抛出异常 1.2 - 检测和捕获异常 二、在函数调用链中异常栈展开的匹配原则 三、异常重新抛出 四、异常规范 五、C 标准异常体系 程序的错误大致可以分为以下三种&#xff1a; 语法错误&#xff1a;在编译和链接阶段就能发现&#xf…

Linux——vim简介、配置方案(附带超美观的配置方案)、常用模式的基本操作

vim简介、配置方案、常用模式的基本操作 本章思维导图&#xff1a; 注&#xff1a;本章思维导图对应的xmind和.png文件都已同步导入至资源 1. vim简介 vim是Linux常用的文本编辑器&#xff0c;每个Linux账户都独有一个vim编辑器 本篇我们介绍vim最常用的三种模式&#xff1a;…

史上最全最新Ubuntu20.04安装教程(图文)

总的来说&#xff0c;安装Ubantu包含以下三个步骤&#xff1a; 一、安装虚拟机 二、Ubuntu镜像下载 三、虚拟机配置 一、安装虚拟机 选择安装VMware Workstation&#xff0c;登录其官网下载安装包&#xff0c;链接如下&#xff1a; 下载 VMware Workstation Pro​www.vmwa…

Linux中字符设备的打开、写入

一个内核模块应该由以下几部分组成。 第一部分&#xff0c;头文件部分。一般的内核模块&#xff0c;都需要 include 下面两个头文件&#xff1a; #include <linux/module.h> #include <linux/init.h> 第二部分&#xff0c;定义一些函数&#xff0c;用于处理内核…

【Python大数据笔记_day07_hive中的分区表、分桶表以及一些特殊类型】

分区表 分区表的特点/好处:需要产生分区目录,查询的时候使用分区字段筛选数据,避免全表扫描从而提升查询效率 效率上注意:如果分区表在查询的时候呀没有使用分区字段去筛选数据,效率不变 分区字段名注意:分区字段名不能和原有的字段名重复,因为分区字段名要作为字段拼接到表后…

常见面试题-JDK和CGLIB动态代理

JDK 动态代理和 CGLIB 动态代理对比 JDK 动态代理只能代理实现了接口的类&#xff0c;而 CGLIB 可以代理未实现任何接口的类。另外CGLIB 动态代理是通过生成一个被代理类的子类来拦截被代理类的方法调用&#xff0c;因此不能代理声明为final 类型的类和方法就二者的效率来说&a…

信息系统项目管理师 教材目录、考试大纲、考情

文章目录 考情考试大纲第1章 信息化发展第2章 信息技术发展第3章 信息系统治理第4章 信息系统管理第5章 信息系统工程第6章 项目管理概论第7章 项目立项管理第8章 项目整合管理第9章 项目范围管理272第10章 项目进度管理297第11章 项目成本管理334第12章 项目质量管理358第13章…

【图像卷积与卷积层】的基本概念与区别

图像卷积 卷积操作是指将一个滤波器&#xff08;也称为卷积核或内核&#xff09;应用于输入图像的小块区域&#xff0c;然后将滤波器在整个图像上滑动&#xff0c;逐步计算出输出特征图。这个过程可以帮助网络学习到图像的局部特征&#xff0c;因为每个卷积核都可以学习到不同…