在linux后台运行脚本的方法和命令
1、不中断的在后台运行test.sh:nohup ./test.sh &(test.sh的打印信息会输出到当前目录下的nohup.out中)
2、使用jobs可看到test.sh处于running状态
3、使用ps -ef |grep test.sh可查看到正在运行的test.sh脚本进程
4、退出当前shell终端,再重新打开,使用jobs看不到正在运行的test.sh,但使用ps -ef可以看到
1、不中断的在后台运行test.sh:nohup ./test.sh &(test.sh的打印信息会输出到当前目录下的nohup.out中)
2、使用jobs可看到test.sh处于running状态
3、使用ps -ef |grep test.sh可查看到正在运行的test.sh脚本进程
4、退出当前shell终端,再重新打开,使用jobs看不到正在运行的test.sh,但使用ps -ef可以看到
sudo apt install iftop
下载以下代码的文件:http://laihp.top:8888/down/426TFMznNo3E
#!/bin/bash for (( i = 0; i < 100000000; i=(i+1) )) do nowdate1=`date +%Y%m%d` nowdate2=`date +%Y%m%d-%H%M` datetimerm=1 iftop -i ens33 -N -P -t -L 10 -s 5 > /tmp/iftop-$nowdate2-$i.log if [ $(date +%M) -eq "$datetimerm" ] then mv /tmp/iftop-* /tmp/oldiftoplog/ fi if [ $(date +%d) -eq "$datetimerm" ] #rm on day 1 of every mouth then rm /tmp/oldiftoplog/* fi sleep 1 done exit 0
nohup ./test.sh &
大部分是由于git服务器内存不足无法对文件进行压缩也和解压导致。
解决方案:
1.自有git服务器 :增加虚拟内存 (挂在虚拟内存文件用完可以卸载)参考
2. 清除git上面过大的文件
3. 不建议使用 –depth=1 这会造成文件冲突 除非是重新克隆
建议增加内存,增加完内存后,需要登录到服务器,找到对应仓库目录,删掉gc.log
FRP是一个内网穿透的神器,可以通过一个有公网IP的服务器搭建FRP服务端,去转发流量实现内网穿透。
安装配置:
下载安装包:Releases · fatedier/frp · GitHub
一个安装包里包含服务器端和客户端。
wget https://github.com/fatedier/frp/releases/download/v0.42.0/frp_0.42.0_linux_amd64.tar.gz
tar -xvf frp_0.42.0_linux_amd64.tar.gz
解压后,需要拷贝到服务器(frps frps_full.ini frps.ini)或客户端(frpc frpc_full.ini frpc.ini)
如下为客户端:
root@ubuntu:~/frp_0.42.0_linux_amd64# ll total 10724 drwxr-xr-x 4 www pulse-access 4096 Apr 27 16:18 ./ drwx------ 7 root root 4096 Apr 27 16:58 ../ -rwxr-xr-x 1 www pulse-access 10936320 Apr 22 11:38 frpc* -rw-r--r-- 1 www pulse-access 10814 Apr 22 11:42 frpc_full.ini -rw-r--r-- 1 www pulse-access 152 Apr 27 16:52 frpc.ini -rw-r--r-- 1 www pulse-access 11358 Apr 22 11:42 LICENSE
服务端:
需要编辑改文件:frps.ini
[common] bind_addr = 0.0.0.0 bind_port = 7000 token = 11223344 dashboard_port = 7001 dashboard_user = admin dashboard_pwd = 11223344
后台运行:
nohup ./frps -c ./frps.ini
客户端:
需要编辑改文件:frpc.ini
[common] server_addr = serverIP server_port = 7000 token = 11223344 [web01] type = tcp local_ip = 192.168.0.52 local_port = 80 remote_port = 7002
后台运行:
nohup ./frpc -c ./frpc.ini
访问服务器的7002就会转发到内网服务器的80端口了。
1、控制面板升级磁盘:
先创建个快照,避免数据丢失。
然后可以用快照创建个大的磁盘。
然后再os磁盘,点击交换OS磁盘,把快照新建的磁盘替换上。
2、命令行扩容升级的空间。
258 lsblk -f 259 growpart /dev/sda 2 260 lsblk -f 261 df -h 262 gdisk -l /dev/sda 263 xfs_growfs / 264 df -h
参考:
https://docs.microsoft.com/zh-cn/azure/virtual-machines/linux/resize-os-disk-gpt-partition
后台运行脚本 执行脚本test.sh:./test.sh 中断脚本test.sh:ctrl+c 在1的基础上将运行中的test.sh,切换到后台并暂停:ctrl+z 执行ctrl+z后,test.sh在后台是暂停状态(stopped),使用命令:bg number让其在后台开始运行(“number”是使用jobs命令查到的 [ ]中的数字,不是pid) 直接在后台运行脚本test.sh:./test.sh & 查看当前shell环境中已启动的任务情况:jobs 将test.sh切换到前台运行:fg %number(”number”为使用jobs命令查看到的 [ ] 中的数字,不是pid) 中断后台运行的test.sh脚本:先fg %number切换到前台,再ctrl+c;或是直接kill %number 以上两种在后台运行test.sh的方法,当遇到退出当前shell终端时,后台运行的test.sh也就结束了。这是因为以上两种方法使得test.sh在后台运行时,运行test.sh进程的父进程是当前shell终端进程,关闭当前shell终端时,父进程退出,会发送hangup信号给所有子进程,子进程收到hangup以后也会退出。所以要想退出当前shell终端时test.sh继续运行,则需要使用nohup忽略hangup信号。 不中断的在后台运行test.sh:nohup ./test.sh &(test.sh的打印信息会输出到当前目录下的nohup.out中) 使用jobs可看到test.sh处于running状态 使用ps -ef |grep test.sh可查看到正在运行的test.sh脚本进程 退出当前shell终端,再重新打开,使用jobs看不到正在运行的test.sh,但使用ps -ef可以看到 在后台不中断的运行test.sh,可以使用nohup忽略hangup信号,或者使用setsid将其父进程改为init进程(进程号为1) 不中断的在后台运行test.sh另一个命令:setsid ./test.sh & 使用ps -ef |grep test.sh可看到test.sh进程的父进程id为1
#安装git程序 apt install git openssh-server openssh-client exit #切换到root权限 sudo -su root #上传管理员公钥到tmp下,该目录方便后边git用户拷贝key文件 ls /tmp/ cp /home/ubuntu/admin.pub /tmp/ ls -al /tmp/ chmod /tmp/admin.pub chmod 777 /tmp/admin.pub chmod /tmp/admin.pub ls -al /tmp/ #创建git用户并进入到git用户视图下 sudo adduser --system --shell /bin/bash --gecos 'Git Server User' --group --disabled-password --home /home/git git su git
#进/home/git/下 git clone https://github.com/sitaramc/gitolite mkdir -p bin ls ./gitolite/install -to /home/git/bin ls bin/ cp /tmp/admin.pub . ls bin/gitolite setup -pk admin.pub ls -al ls .ssh/
仓库添加管理
2、先将 gitolite-admin.git 仓库克隆到本地
git clone git-server:gitolite-admin.git (git-server 是在第 1 步配置的的)
进入到 gitolite-admin 中会有如下两个目录
conf/ 其中的文件 gitolite.conf 用于管理仓库和用户权限,例如下图包含了两个仓库,如果需要添加仓库,只需要按照格式添加,然后推到服务器就可以了
keydir/ 该目录存放了用户的公钥文件,推到服务器后 gitolite 会自动将其权限添加到 ~/.ssh/authorized_keys 文件中
在管理机器上
15 git clone git@10.80.0.122:gitolite-admin.git
16 cd gitolite-admin/
17 ls
18 cd conf/
19 ls
20 vim gitolite.conf
21 apt install vim
22 vim gitolite.conf
在配置文件里加了一个新的库test2
repo gitolite-admin
RW+ = admin
repo testing
RW+ = @all
repo test2
RW+ = admin
23 cd ..
24
26 cd gitolite-admin/
27 git add .
28 git commit -am “112”
29 git config –global user.email “1@qq.com”
30 git config –global user.name “1”
31 git commit -am “112”
32 git push
33 cd ..
34
35
36 git clone git@10.80.0.122:test2.git
3
38 ll
apt install git openssh-server openssh-client
adduser –system –shell /bin/bash –group git
adduser git ssh
passwd git
Bole202011git
Bole202101git
scp .ssh/id_rsa.pub git@192.168.3.22:/home/git/admin.pub
su git
git clone git://github.com/ossxp-com/gitolite.git
cd gitolite/src/
./gl-system-install
PATH=/home/git/bin:$PATH
cp -r gitolite/ /usr/share/
/usr/share/gitolite/conf/example.gitolite.rc
gl-setup admin.pub
Web 版的文件管理器。通过浏览器来管理服务器上的文件。当然,要具有适当的权限。
访问:http://server_ip/ex/
就可以使用extplorer来管理目录了。(默认登录账户密码admin)
FileBrowser是一款基于现代浏览器技术的WEB版多用户文件管理器,它可以与我们的Aria2、qBittorrent等软件相结合,构建一个完整的离线下载与文件管理私有云。
安装
拉取镜像
docker pull filebrowser/filebrowser
创建所需文件夹
#日志与数据库
mkdir ~/filebrowser_data
运行容器
docker run \ -v /path/to/root:/srv \ -p 80:80 \ --restart=always \ filebrowser/filebrowser
路径与端口含义
/path/to/root:欲挂载的宿主机目录,文件管理将以这个目录作为根目录。
80:访问端口
开始使用
访问http://ip:port,如果得法,会进入登录界面。
初始管理员账户名与密码均为admin。
进入界面后,在Setting->Profile Settings中修改账户显示语言为简体中文。
在用户管理中可以添加多个用户,并分别设置它们的权限(诸如上传、下载、删除等文件管理权限)。