debian - 自启动的例子

前言

旧服务器上debian7.8.0写的了一些自动启动的脚本,备份一下.

实验

root@lsserver:~# cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# because only root user can mount disk
su - root -c /home/lostspeed/mount_my_disk.sh

# !!! first run vncpasswd on below user's environment to set password for vnc
su - lostspeed -c /home/lostspeed/start_vncserver.sh

# mount all cdrom to install app
# this call must on the end, else after this call will not be run 
su - root -c /home/debian-cd/mount-all-cd.sh

exit 0
root@lsserver:~# cat /home/lostspeed/mount_my_disk.sh
# mount my disk data0 and data1 to /media/data0 and /media/data1
mount /dev/sdb /media/data0
mount /dev/sdc /media/data1

# mount /media/data0/ftp_data0 to /home/ftpuser/ftp_data0
mount --bind /media/data0/ftp_data0 /home/ftpuser/ftp_data0 
root@lsserver:~# cat /home/debian-cd/mount-all-cd.sh
mount -o loop /home/debian-cd/debian-7.8.0-amd64-CD-1.iso /mnt/update-sources/dir_cd1
mount -o loop /home/debian-cd/debian-7.8.0-amd64-CD-2.iso /mnt/update-sources/dir_cd2
mount -o loop /home/debian-cd/debian-7.8.0-amd64-CD-3.iso /mnt/update-sources/dir_cd3
mount -o loop /home/debian-cd/debian-7.8.0-amd64-CD-4.iso /mnt/update-sources/dir_cd4
mount -o loop /home/debian-cd/debian-7.8.0-amd64-CD-5.iso /mnt/update-sources/dir_cd5
mount -o loop /home/debian-cd/debian-7.8.0-amd64-CD-6.iso /mnt/update-sources/dir_cd6
mount -o loop /home/debian-cd/debian-7.8.0-amd64-CD-7.iso /mnt/update-sources/dir_cd7
mount -o loop /home/debian-cd/debian-7.8.0-amd64-CD-8.iso /mnt/update-sources/dir_cd8

# debian-7.8.0-amd64-CD-8.iso
# mount -o loop /home/debian-cd/debian-7.8.0-amd64-CD-8.iso /mnt/update-sources/cd8
root@lsserver:/home/ftpuser# cat close_vncserver.sh
# /// @file /home/lostspeed/start_vncserver.sh
vncserver -kill :1
root@lsserver:/home/ftpuser# cat show_vncserver.sh
ps aux |grep vnc
root@lsserver:/home/ftpuser# cat start_vncserver.sh
# /// @file /home/lostspeed/start_vncserver.sh
vncserver :1 -geometry 1024x768 -depth 24
root@lsserver:/media/data1/svn-rep# cat svn_show.sh 
ps aux |grep svn
root@lsserver:/media/data1/svn-rep# cat svn_start.sh 
svnserve -d

2018-1225
自己用的测试服务器,自动挂载硬盘和启动服务(xrdp, svn)的测试脚本。

root@debian9:~# cat /etc/rc.local
#!/bin/sh -e
# @file /etc/rc.local

# exec sh as user root
su - root -c /home/lostspeed/my_os_boot_cfg/my_boot_cfg_as_root.sh

# exec sh as user lostspeed
su - lostspeed -c /home/lostspeed/my_os_boot_cfg/my_boot_cfg_as_lostspeed.sh

exit 0
#!/bin/sh
# @file /home/lostspeed/my_os_boot_cfg/my_boot_cfg_as_root.sh
# @note 
#	if need debug bash command, can use "echo -e" + "sleep 10s"
# 	if need test this sh, can "umount path_by_mount" + "rm -rf path_by_mount"

echo -e ">> my_boot_cfg_as_root.sh"
# sleep 10s

# i will mount 4 hard disk, use fdisk -l see the hd list
# /dev/sda is sys hd = 1TB(SG disk OEM by dell) , already mount by debian9

# /dev/sdb is hd2 = 1TB(WD red disk, 5400), format by debian9's gui disk manager, only /dev/sdb1 is ext4, other space was unused
# because /dev/sdb is not all ext4, mount it have errorr, only mount /dev/sdb1
echo -e "mount /dev/sdb1"
mkdir -p /media/hd2_1
mount /dev/sdb1 /media/hd2_1

# /dev/sdc is hd3 = 4TB(WD red disk, 5400)
echo -e "mount /dev/sdc"
mkdir -p /media/hd3
mount /dev/sdc /media/hd3

# /dev/sdd is hd4 = 4TB(WD red disk, 5400)
echo -e "mount /dev/sdd"
mkdir -p /media/hd4
mount /dev/sdd /media/hd4

# /dev/sde is hd5 = 8TB(WD red disk, 5400)
echo -e "mount /dev/sde"
mkdir -p /media/hd5
mount /dev/sde /media/hd5

# mount disk to user home
echo -e "mount --bind /media/hd2_1"
mkdir -p /home/lostspeed/disk_work
mount --bind /media/hd2_1 /home/lostspeed/disk_work

echo -e "mount --bind /media/hd3"
mkdir -p /home/lostspeed/disk_data1
mount --bind /media/hd3 /home/lostspeed/disk_data1

echo -e "mount --bind /media/hd4"
mkdir -p /home/lostspeed/disk_data2
mount --bind /media/hd4 /home/lostspeed/disk_data2

echo -e "mount --bind /media/hd5"
mkdir -p /home/lostspeed/disk_data3
mount --bind /media/hd5 /home/lostspeed/disk_data3

# start xrdp
echo -e "start xrdp"
# systemctl only root user can call it
systemctl restart xrdp
# when boot ok, when entry login UI, use mstsc on win10x64 to connect debian9 server ok(use xvnc protocol + user lostspeed)

# start svn
# because my svn dir create by root user, so must exec bash on my_boot_cfg_as_root.sh
echo -e "start svn"

# on /home/lostspeed/disk_data2/svn-rep, i was already do below
# svnadmin create my_svn_rep_2019
# so start svn by root dir is /home/lostspeed/disk_data2/svn-rep
svnserve -d -r /home/lostspeed/disk_data2/svn-rep/
# when svn check, the url is svn://192.168.2.222/my_svn_rep_2019/

echo -e "<< my_boot_cfg_as_root.sh"


以普通用户启动的脚本为空,真说不过去, 用root用户方便一些…

#!/bin/sh
# @file /home/lostspeed/my_os_boot_cfg/my_boot_cfg_as_lostspeed.sh

echo -e ">> my_boot_cfg_as_lostspeed.sh"
# sleep 10s

echo -e "<< my_boot_cfg_as_lostspeed.sh"

猜你喜欢

转载自blog.csdn.net/LostSpeed/article/details/85220152