我正在使用脚本,它接受2个输入(睡眠时间和服务器应该重新启动)。
脚本工作正常。但是一旦我们给出输入脚本应该开始在后台运行。请帮忙
#!/bin/bash
echo " pls enter sleep time:"
read sleeping
echo "pls enter server to take archive"
read server
for i in $(cat /moes/home/ranjith/scripts/list)
do
path=$i
output="nohup dsmc arch $path -subdir=yes >/tsm/backuplogs/$(basename $path)_\`date +%d%m%y_%H_%M\`.log &"
ssh $server $output
sleep $sleeping
done
它像这样打击了
[root@iitmtsm04 scripts]# ./archive.in
pls enter sleep time:
12m
pls enter server to take archive
iitmtsm04
答案 0 :(得分:0)
这是一个更好的主意:
#!/bin/bash
if [ -z "$1" ] || [ -z "$2" ]; then
echo "Usage: $0 [sleep time] [server]"
exit 1
fi
sleeping="$1"
server="$2"
for i in $(cat /moes/home/ranjith/scripts/list)
do
path=$i
output="nohup dsmc arch $path -subdir=yes >/tsm/backuplogs/$(basename $path)_\`date +%d%m%y_%H_%M\`.log &"
ssh $server $output
sleep $sleeping
done
你可以像这样调用它:
[root@iitmtsm04 scripts]# ./archive.in 12m iitmtsm04 &
最后的&
指示shell在后台运行给定的命令。
有关命令行参数的详细信息,如果您有兴趣:http://tldp.org/LDP/abs/html/othertypesv.html
答案 1 :(得分:0)
使用screen
命令实现目标。
[root@iitmtsm04 scripts]# screen
[root@iitmtsm04 scripts]# ./archive.in
输入输入,然后使用ctrl + ad
分离屏幕。
请记住按ctrl + ad
而不将手指从ctrl上移开。