前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS 7 常用软件安装汇总

CentOS 7 常用软件安装汇总

作者头像
全栈程序员站长
发布2022-09-14 13:23:55
5.2K0
发布2022-09-14 13:23:55
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

CentOS 7 常用软件安装汇总
CentOS 7 常用软件安装汇总

基本指令

代码语言:javascript
复制
cd abc -> 进入子目录
cd/ -> 进入根目录
ll -> 显示当前路径文件(详细)
ls -> 同上(简略)
cp -> 拷贝
mkdir -> 创建目录
rm -> 删除文件或文件夹
mv -> 移动文件或改名
clear -> 清屏
pwd -> 显示当前路径
more -> 显示文本文档
uname -a -> 查看当前核心版本号
vim -> 文本编辑器
fdisk -> 硬盘分区
mkfs -> 格式化
chmod -> 改变文件权限
free -> 查看剩余内存
grep -> 按条件高亮显示文本
man -> 显示命令的help文档
df -h -> 查看磁盘剩余空间
du -sh dir -> 查看文件夹名"dir"占用的空间
lsof -i:8080 -> 查看8080端口是否被占用
find . -name "filename.txt" -> 搜索当前目录下filename.txt文件,包括各级子目录

几个有用的命令:

代码语言:javascript
复制
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 [filename](卸载一个包)
nohup [cmds] >/dev/null 2>&1 & (无任何输出或log,在后台运行一个cmds指令)
[如果仅仅是无提示运行任意命令,可以简单地在命令最后加一个" & " 号即可]

带参数的alias快捷命令:

代码语言:javascript
复制
# nano  ~/.bashrc
输入以下内容:
alias psa="psa"
psa()
{
    ps -A|grep $@
}
存盘退出
# source ~/.bashrc
# psa bash (相当于ps -A|grep bash)
 1703 pts/0    00:00:00 bash

简便的开机自启动方法:

代码语言:javascript
复制
# 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: 1. yum groupinstall ‘PHP Support’ -y (安装) 2. systemctl restart httpd.service (重启一下Apache即可)

安装mysql支持(其实是mariadb):

代码语言:javascript
复制
yum install mariadb-server mariadb -y
systemctl start mariadb
systemctl enable mariadb

(在这个帖子的5楼,我还会说到一个完整安装官方版MySQL的帖子)

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 安装: 首先看看服务器装了vsftp没: rpm -qa|grep vsftpd 先卸载了再说:yum remove vsftpd 然后: #yum install vsftpd (先装) 改: etc/vsftpd/vsftpd.conf 这两行: anon_upload_enable=YES (允许匿名用户上传) anon_mkdir_write_enable=YES (允许匿名用户建目录) 然后这样还是不行的,还需要把vsftp的主上传目录改为777, 否则会报553 Could not create file错误。 chmod -R 777 /var/ftp 然后回到命令行这边: systemctl start vsftpd.service (开始服务) systemctl enable vsftpd.service (自启) 【特别注意事项】 回到VPS,要建立一个相应入站放行规则,

出站无需设置,否则无法连接。

一般VPS都有这个选项,在WEB界面里设置,方法基本大同小异。 本地用户登陆,首先配置文件如下: anonymous_enable=NO local_enable=YES write_enable=YES local_umask=002 userlist_enable=YES userlist_deny=YES userlist_file=/etc/vsftpd/user_list use_localtime=YES dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd tcp_wrappers=YES

然后添加一个新的客户: cent useradd cent -s /sbin/nologin passwd cent mkdir /var/ftp/pub chown -R cent /var/ftp/pub chmod -R 755 /var/ftp/pub 配置文件里没有设置chroot_local_user (即将用户约束在各自的home文件夹)

ps: 这样设置的权限很大,用户可以浏览并修改整个服务器文件。

BTW:另外还有一款名为Bitvise SSH Client的远程访问软件,本身的作用和putty之类差不多,但它功能极其强大,自带SFTP,如果你本无意架设一个真正的FTP站点,而仅仅是为了方便自己上传下载文件的话,选择这款免费软件就足够了,无需任何设置,登录即用!


全新安装官方版MySQL: 以下为全新安装官方原版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到服务器也一样):

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

然后执行以下指令: rpm -Uvh mysql57-community-release-el7-11.noarch.rpm 这个动作很快,就几秒钟的事儿。

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

装完之后会有一个小结,如果原机装有Mariadb或者旧版MySQL的话,可以看到 Replaced: mysql-libs.i686 0:5.1.73-8.el6_8 会被新装这个MySQL替换(Replaced)掉。

3. 启动服务 装完后,用以下指令开启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,程序会自动创建。

4. 初始化设置 在上面的安装过程中,产生了一个临时密码,在/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

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

5. 设置远程访问 现在整个儿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应该就能连通了)

7. 在已经设置了root密码的情况下重新修改root密码的方法(忘记了root密码怎么办): 首先要进入安全模式 systemctl stop mysqld.service (先关mysql服务) vi /etc/my.cnf (修改mysql配置文件) 加入一行: skip-grant-tables 依次按下ESC : w q ! (依次按下这5个建,记住不是同时按下哦,再按回车,表示存盘退出) 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) vi /etc/my.cnf 去掉skip-grant-tables这一行,或者在前面加个#号注释掉 (不能一直让mysql工作在安全模式里面啊,root都不需要密码的,尺度太大了) 改完之后,像前面一样,依次按下 ESC : w q ! 这5个键,存盘退出。 systemctl start mysqld.service (再重启mysql即可)


NodeJS

1. 安装nodejs和cnpm (cnpm源自淘宝,比原版npm快得多)

代码语言:javascript
复制
yum install -y nodejs.x86_64
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install forever -g (用cnpm装一个forever)

2. 开机自动运行默认网站的方法:

首先要搞清楚forever的路径:

代码语言:javascript
复制
whereis forever
forever: /usr/bin/forever (这就是forever的实际路径)

3. 创建一个service服务文件:

代码语言:javascript
复制
nano /usr/lib/systemd/system/myweb.service

输入以下内容:

代码语言:javascript
复制
[Unit]
Description=myweb
After=network.target

[Service]
Type=forking
ExecStart=/usr/bin/forever start /root/myweb/bin/www
ExecReload=/usr/bin/forever stopall && /usr/bin/forever start /root/myweb/bin/www
ExecStop=/usr/bin/forever stopall
PrivateTmp=true

[Install]
WantedBy=multi-user.target

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

存盘退出。

代码语言:javascript
复制
systemctl daemon-reload
systemctl start myweb
systemctl enable myweb (开机自动运行)

Java JDK环境安装

1. 访问 (下载相对应的rpm包,CentOS 7下载jdk-8u151-linux-x64.rpm,ps:只能用浏览器下载了再上传到服务器,直接wget不行) 2. mkdir /usr/java (java安装在/usr/java里) 3. cd /usr/java 4. 上传rpm包到/usr/java 5. rpm -ivh jdk-8u151-linux-x64.rpm 6. 输入java -version,如果不报错,而是弹出java版本号,说明安装成功!


GNOME环境安装 + VNC服务器安装

Step 1 . 首先以 root 账户登录,创建1个VNC帐号并设置密码

代码语言:javascript
复制
useradd -c "User Joe Configured for VNC Access" joevnc
passwd joevnc

Step 2 . 安装 GNOME 桌面

代码语言:javascript
复制
yum groupinstall -y "GNOME Desktop" (centos7)
dnf groupinstall -y "Server with GUI" (centos8)
reboot

Step 3 . 安装 TigerVNC Server

代码语言:javascript
复制
yum install -y tigervnc-server

Step 4 — 设置 VNC Service 也就是刚才设置的joevnc,将vncserver的默认设置文件拷贝为两个独立的设置文件,编号为4和5:

代码语言:javascript
复制
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:4.service

老版本方法:

代码语言:javascript
复制
用vi编辑器修改4号配置文件,也就是用户joevnc的设置文件:

vi /etc/systemd/system/vncserver@:4.service

找到两处<USER>,将他们改为joevnc:

[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l joevnc -c "/usr/bin/vncserver %i" 
PIDFile=/home/joevnc/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

新版本方法:此文件不需要做任何修改。

Step 4 . 设置 VNC 密码 用exit命令注销当前root用户,然后重新打开一个命令行终端连接,以joevnc身份登录。

注意:此处新旧版本不一样,先说老版本方法:

代码语言:javascript
复制
用joevnc登录之后 (记住,接下来的操作都是以joevnc完成的,不是root)
输入命令:
vncserver
设置一个访问密码,记住这是vnc的访问密码,跟joevnc本身的系统密码不是一回事。
老版本设置比较简单,这一步完成后,就可以输入exit,注销joevnc,重新以root账户登录了。

新版本方法:

代码语言:javascript
复制
新版本已经取消 vncserver 这个命令了,
改为输入:
vncpasswd
输入之后会在"家"(~)文件夹自动创建一个 .vnc 目录,
joevnc用户这边算是完成了,用exit注销之后再用root登录,然后:

将默认配置文件拷贝给joevnc:
cp /etc/tigervnc/vncserver-config-defaults /home/joevnc/.vnc/config
然后编辑这个文件:
vim /home/joevnc/.vnc/config
改正这样:

session=gnome
securitytypes=vncauth,tlsvnc
desktop=sandbox
geometry=2000x1200
localhost
alwaysshared

存盘退出。

还没完,root还需要修改这个文件:
vim /etc/tigervnc/vncserver.users
加一行:
:4=joevnc

存盘退出。

重新以root账户登录之后,输入以下命令重启守护进程:

代码语言:javascript
复制
systemctl daemon-reload

开启4号VNC(也就是用户joevnc的配置文件)服务:

代码语言:javascript
复制
systemctl start vncserver@:4.service

让4号VNC服务开机自启动:

代码语言:javascript
复制
systemctl enable vncserver@:4.service

Step 5 . 设置防火墙 开启防火墙:

代码语言:javascript
复制
systemctl start firewalld

开放5904端口:

代码语言:javascript
复制
firewall-cmd --permanent --zone=public --add-port=5904-5905/tcp

(你可能会问,为啥是5904?因为TigerVNC自身使用5900端口,而每一个VNC用户又都拥有自己的独立端口号,规定以 “5900+VNC用户编号” 为原则,刚才配置文件编号是4,那么这两个独立进程的端口就是5900+4,当然编号随你自己设置,不一定非要4,反正记住规则是 “5900+编号” 就行了)

刷新防火墙设置

代码语言:javascript
复制
firewall-cmd --reload

如果总是报错,可以用systemctl stop firewalld 和 systemctl disable firewalld 干脆把防火墙先关再说。

nft防火墙篇:

代码语言:javascript
复制
Centos8已经全面使用nftable了,也比较简单:

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 { 5004, 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;
        }
}

存盘,比如说文件名为aaa.nft,
用:nft -f aaa.nft 即可。

Step 6 . 使用VNC客户端软件 下载地址:http://www.onlinedown.net/soft/251613.htm 安装很简单,一直下一步即可,打开主界面也没什么可设置的,直接在地址框输入:

你的服务器IP:5904,如127.0.0.1:5904

输入完毕后点 Connect 即可。

端口5904对应的是joevnc 另外,如果你登陆桌面的时候,即使输入了正确的密码还是报错:sorry.that didn’t work.please try again 那就先回到命令行,输入:

代码语言:javascript
复制
passwd 用户名

重新输入一次密码,更新之后桌面那边就可以使用了。

参考文章:

How To Install and Configure VNC Remote Access for the GNOME Desktop on CentOS 7 | DigitalOcean


Chrome:

代码语言:javascript
复制
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

然后用rpm安装:

代码语言:javascript
复制
rpm -ivh google-chrome-stable_current_x86_64.rpm

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

代码语言:javascript
复制
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命令一个一个分析,比如:

代码语言:javascript
复制
repoquery --nvr --whatprovides  libappindicator3.so.1

系统显示:

代码语言:javascript
复制
libappindicator-gtk3-12.10.0-13.el7

发现少了这个包,那么我们直接用yum去安装:

代码语言:javascript
复制
yum install libappindicator-gtk3-12.10.0-13.el7 -y

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

代码语言:javascript
复制
yum install *lsb* -y

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

代码语言:javascript
复制
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

装完之后,再输入一遍:

代码语言:javascript
复制
rpm -ivh google-chrome-stable_current_x86_64.rpm

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

回到桌面,发现桌面的Internet分类里已经有了Chrome的图标了。 如果无法启动,说明你现在使用的是root账户,因为chrome默认是不能给root用户运行的。 打开文件管理器,找到 /usr/share/applications/路径下的Chrome图标,右键属性,然后把Command改成:

代码语言:javascript
复制
/usr/bin/google-chrome-stable %U --no-sandbox 

或者直接在桌面的Terminal里面用命令行启动:

代码语言:javascript
复制
/usr/bin/google-chrome-stable --no-sandbox

CentOS 7 开机自动启动脚本的方法

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

代码语言:javascript
复制
nano /usr/lib/systemd/system/rockage.service

2.在此文件中输入服务设置代码:

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

ExecStart,ExecReload,ExecStop 这三个选项分别对应启动、重启、停止,如果命令够简单的话,直接输入就行了,一个命令不够,中间还可以用&&连接。如果命令行实在太复杂或者还需要做逻辑判断等,那就需要用运行脚本了。 比如这样:

代码语言:javascript
复制
ExecStart=/root/myweb/start.sh
ExecReload=/root/myweb/restart.sh
ExecStop=/root/myweb/stop.sh

注意,作为服务脚本而言,第一行必须是 #! 开头的,这不是注释,而是标明这个脚本是由哪个shell来执行,不可或缺,否则会报错。例如我们经常见到的:#!/bin/bash,这里给出一个sh脚本的例子:

代码语言:javascript
复制
#!/bin/bash
forever start ./bin/www

(此脚本自动运行node.js的forever,作用是将nodejs制成的网站置于后台运行)

不管用哪种方法,反正最终能用syetemctl控制启动、停止、重启就可以了:

代码语言:javascript
复制
systemctl start rockage (启动)
systemctl stop rockage (停止)
systemctl restart rockage (重启)

正确无误,不报错,启停正常后,可以将这个服务写入开机启动项:

代码语言:javascript
复制
systemctl enable rockage

或者取消开机启动:

代码语言:javascript
复制
systemctl disable rockage

查看服务状态:

代码语言:javascript
复制
systemctl status rockage

查看所有已启动的服务

代码语言:javascript
复制
systemctl list-units --type=service

一个不太常见的坑:

如果系统总是报告这个错误: [/usr/lib/systemd/system/rockage.service:5] Missing ‘=’. 多半是由于文件没有以utf8保存导致。 这种情况下,随便在/usr/lib/systemd/system/目录下找个“模板”, cp 复制成你的文件,再编辑就好


NextCloud 私有云

参考我的博文:

1. 【亲测】PHP Version 7.3.8 + Nginx 1.16.1 (100%无坑版)编译安装_♀我爱摇滚,更爱金属乐♀-CSDN博客 (安装nginx+php)

2. [亲测] 私有云盘Nextcloud在nginx环境下安装(全流程)_♀我爱摇滚,更爱金属乐♀-CSDN博客_nextcloud nginx (安装Nextcloud)


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 出现INFO: Detected 0 NAT services的时候,按CTRL+C退出程序 #nano /root/.config/syncthing/config.xml 搜索:127.0.0.1:8384 改为 0.0.0.0:8384 存盘退出。 # syncthing (重新运行) 不要按CTRL+C退出,直接去浏览器访问http://ip:8384 —-df小知识—– 查看总体磁盘空间:df -hl 查看各子目录占用空间情况: du -h –max-depth=1 / /var/log 如果占用空间很大,可以清空

(也有可能报错,如/log/mariadb目录如果被删则mariadb无法运行,手工mkdir一个可以解决) ——windows篇————- 下载SyncTrayzor:https://github.com/canton7/SyncTrayzor/releases/tag/v1.1.24 安装后进入SyncTrayzor,删除默认的Default Forder,新建一个Sync的共享目录,物理地址是:D:\Sync ——共享文件夹篇之VPS部分————- 打开浏览器,输入VPS地址:http://ip:8384 注意:Syncthing没有服务器/客户端的概念,任何一个结点既是服务器也是客户端 先设置VPS这边,删除默认的Default forder,新建一个Sync的共享目录,物理地址是:/root/Sync 添加远程设备: 1. 此处的“远程设备”概念,是指台式机,这里的当前设备是指VPS 2. 那么我们如何知道台式机ID? – 现在回到台式机的SyncTrayzor – 点右上角的[操作] – [显示ID],把这一串字符串复制起来 3. 把刚才得到的字符串粘贴到添加远程端这个项目里, 在【共享】里有一个“选择与该设备共享的文件夹”,勾选Sync 4. 页面不要关闭,等一下还要从这里拷贝VPS的ID ——共享文件夹篇之台式机部分————- 1. 台式机这边打开SyncTrayzor 2. 添加远程设备,现在的远程设备倒过来了是指VPS,当前设备是指台式机 3. 回到浏览器VPS那个界面,同样的地方,点操作,点显示ID,并把这一行字符串粘贴过来 4. 同样的,在【共享】里,勾选Sync 5. 如果有其他的台式机,一样依葫芦画瓢按此操作即可 ——-问题篇————— 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里即可 2. 各种设置都OK了,但是在同步的时候卡住不动怎么办? 设置一下D:\Sync文件夹的权限,让本机USER对它有全部读写权限即可。

——-后台运行————-

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

# nohup syncthing &> /dev/null &

# killall 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 再将这个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分享文件:

代码语言:javascript
复制
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;
         }

   }
}

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

新建一个目录: /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 即可

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159657.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Chrome:
  • CentOS 7 开机自动启动脚本的方法
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档