Генерируйте списки номеров страниц для 2 - двусторонняя печать: 2,3, … и 1,4, …

Поскольку Вы уже используете Ubuntu, я рекомендую их Серверное руководство, которое предлагает основной обзор единого набора сервисов по умолчанию.

Также взгляните на безопасность Сервера Linux от O'Reilly. На самом деле просто ищите Amazon довольно много предложений.

Поиск с помощью Google стабилизирующего контрольного списка сервера, кажется, возвращает некоторую пользу, практичную, способы быстрого выяснения, неправильно ли что-то очевидно с Вашей установкой.

Наконец, направляйтесь в безопасность serverfault, разделяют и спрашивают далеко.

Править: также, ICMP должен быть заблокирован на основе сообщения. Посмотрите, что Пакет ICMP Фильтрует для деталей.

3
12.11.2011, 23:47
4 ответа

Это работает. Сохраните его к increment.bash затем введите bash increment.bash 2 получить постепенное увеличение, запускающееся в 2, или bash increment.bash 4 запускаться в 4. Запустится в 2 если ни одно определенное. (Сделанный некоторыми улучшениями туда, где предыдущее на самом деле работает),

#!/bin/bash

if [ $1 ]; then
    opt=$1
    if [ $opt == "--help" ]; then echo "Usage: $0 [2|4] -- either starting number 2 or 4, to print first number and +1, increment by 3, then continue."; exit 0
    elif [ $opt == 2 ]; then i=$opt
    elif [ $opt == 4 ]; then i=$opt
    fi
else i=2
fi

echo $i; let i++; echo $i;

for (( n=1; $n < 35; n++ )); do
    if [ $i == 135 ] || [ $i == 137 ]; then break; fi
    i=$[i+3]; echo "$i";
    let i++; echo "$i";
done

Здесь это в действии:

$ for i in {2..4..2}; do for type in head tail; do echo ":: $i | $type :: "; bash increment.bash $i | $type; done; done
:: 2 | head :: 
2
3
6
7
10
11
14
15
18
19
:: 2 | tail :: 
118
119
122
123
126
127
130
131
134
135
:: 4 | head :: 
4
5
8
9
12
13
16
17
20
21
:: 4 | tail :: 
120
121
124
125
128
129
132
133
136
137
2
27.01.2020, 21:15

Я не абсолютно уверен, что Вы пытаетесь сделать, но делаете что-то, что просто рассчитывает, та последовательность довольно проста:

i=2 # or 4
while true; do
    echo $i
    i=$(($i+1))
    echo $i
    i=$(($i+3))
done
3
27.01.2020, 21:15

Используя GNU sed для его BEGIN~STEP opiton.

printf "%s\n" {1..137} |tee \
    >(sed -nr '2~4H; 3~4H; ${g; s/\n/,/g; s/^,(.*)/\1/p}'>set23) |
      sed -nr '4~4H; 5~4H; ${g; s/\n/,/g; s/^,(.*)/\1/p}'>set45
cat set23
cat set45

Вывод

2,3,6,7,10,11,14,15, ... ,130,131,134,135
4,5,8,9,12,13,16,17, ... ,132,133,136,137 
1
27.01.2020, 21:15

Вот один способ создать эти списки чисел: пройдите числа от 1 до $n, и добавьте их к тому, какой бы ни список является соответствующим. Отрывок ниже использует только портативные конструкции.

recto= verso= i=1
while [ $i -le $n ]; do
  if [ $((i % 4)) -le 1 ]; then recto=$recto,$i; else verso=$verso,$i; done
  i=$((i + 1))
done
recto=${recto%,} verso=${verso%,}

Вот ksh/bash/zsh версия:

recto= verso=
for ((i=1; i<n; i++)); do
  if ((i % 4 <= 1)); then recto=$recto,$i; else verso=$verso,$i; done
done
recto=${recto%,} verso=${verso%,}
0
27.01.2020, 21:15

Теги

Похожие вопросы