Если Вы храните снимки в файлах, в противоположность в файловой системе (например, с zfs receive
), я боюсь, это не возможно.
Если Вы используете ZFS на отправке, и на стороне получения можно избежать необходимости передавать целый снимок и только передавать различия снимка по сравнению с предыдущим:
ssh myserver 'zfs send -i pool/dataset@2014-02-04 pool/dataset@2014-02-05' | \
zfs receive
ZFS знает о снимках и хранит взаимные блоки только однажды. Наличие файловой системы понимает, что снимки позволяют Вам удалить старые без проблем.
В Вашем случае Вы храните снимки в отдельных файлах, и Ваша файловая система не знает о снимках. Как Вы уже заметили, это повреждает вращение. Вы любой должен передать все снимки, которые потратят впустую пропускную способность и пространство памяти, но позволяет Вам удалить отдельные снимки. Они не зависят друг от друга. Можно сделать возрастающие снимки как это:
ssh myserver 'zfs send -i pool/dataset@2014-02-04 pool/dataset@2014-02-05' \
> incremental-2014-02-04:05
Для восстановления возрастающего снимка, Вам нужны предыдущие снимки также. Это означает, что Вы не можете удалить старый incrementals.
Вы могли сделать incrementals как показано в моем последнем примере и делать новое невозрастающее каждый месяц. Новые incrementals зависят от этого невозрастающего, и Вы свободны удалить старые снимки.
Или Вы могли изучить другие решения для резервного копирования. Существует rsnapshot, который использует rsync
и жесткие ссылки. Это делает очень хорошее задание при вращении и является очень эффективной пропускной способностью, так как это требует полного резервного копирования только однажды.
Затем существует bareos. Это делает incrementals, которые являются bandwith-и экономящий место. Это имеет очень хорошую функцию; это может вычислить полное резервное копирование от ряда incrementals. Это позволяет Вам удалить старый incrementals. Но это - довольно сложная система и предназначенный для больших установок.
Лучшее решение, однако, состоит в том, чтобы использовать ZFS на стороне получения. Это будет эффективная пропускная способность, устройство хранения данных, эффективное и намного быстрее, чем другие решения. Единственное действительно недостаток, о котором я могу думать, состоит в том, что у Вас должен быть минимум 8 GiB память ECC на том поле (Вы могли бы согласиться с 4 GiB, если Вы не выполняете сервисов и только используете его для zfs receive
).
Да, в основном, инструкции из Ubuntu или Mint - это то же самое, что и в Arch. Arch - это более удобная система разработки. На самом деле не предназначен как стабильный выпуск для учетной записи типа киоска. Но это может быть сделано. Получите правильные команды chmod и правильные настройки adduser и passwd и проверьте их.
Нет ничего плохого в использовании временной переменной: переменные создаются для хранения данных, которые используются несколько раз.
В этом случае можно объединить два вызова grep/sed в один вызов GNU grep, sed или awk. Легко с sed: передайте опцию -n
, чтобы вывести только явно напечатанные строки и напечатать строки, на которых сделана подстановка.
echo "$(
iw dev wlp1s0 link |
sed -nr -e 's/^\s*SSID:\s//p' -e 's/^\s*signal:\s//'
)"
Есть одно отличие от исходного сценария: SSID и значения сигнала печатаются в том порядке, в каком они появляются на выходе iw
. Если бы вы хотели быть независимыми от этого порядка, это было бы громоздко с седом, так что неловкость была бы инструментом выбора. При таком подходе получить выходные данные на одной линии так же просто. Следующий сценарий печатает последнее значение для каждого настраивать ( iw
выводит только одно, поэтому в данном конкретном случае это не имеет значения); измените, например, ssid = $0
на ssid = ssid «» $0
, чтобы напечатать их все.
iw dev wlp1s0 link | awk '
$1=="SSID:" {sub(/[^:]*:[[:space:]]*/,""); ssid = $0}
$1=="signal:" {sub(/[^:]*:[[:space:]]*/,""); signal = $0}
END {print ssid, signal}
'
Если требуется отправить выходные данные команды в два разных фильтра, можно использовать tee
и передать ему подстановку процесса . Это признак bash (от ksh93, присутствует также в zsh, но не в plain sh), обобщающий трубы. Команда tee
видит имя файла, обозначающее канал, подключенный к указанной команде.
iw dev wlp1s0 link | tee >(
grep '^\s*SSID:\s' |
sed -r 's/^\s*SSID:\s//'
) |
grep '^\s*signal:\s' |
sed -r 's/^\s*signal:\s//'
Ограничением этого подхода является то, что команда в процессе замещения выполняется в своей собственной субоболочке. Невозможно получить переменные обратно из него или управлять тем, как его выходные данные перемежаются с другими.
-121--133376- Вы пытаетесь выполнить $ file
. Вместо этого, вы должны повторить его:
# ...
if echo "$file" | grep 'o' ;
# ...
Обратите внимание, что grep уже напечатает имя файла, поэтому вы должны замолчать его (например, grep -q 'o'
или grep 'o' >/dev/null
).
Вы также передаете -l
ls
, что вы не хотите делать. ls -l
печатает имя и атрибуты файла, и вы будете сопоставлены с ними.
Кроме того, вы можете использовать кавычки, если ожидаете, что они будут работать с любым файлом, но это не источник проблемы.
P.S.: Как отмечали другие, для начала не следует использовать ls
.
В случае gnome - пожалуйста, используйте следующее в качестве поддержки при получении, где вы хотите быть.
Безопасность Отключите доступ к любой командной строке
https://help.gnome.org/admin/system-admin-guide/stable/lockdown-command-line.html.en
Перед активацией
убедитесь, что установка выполняется по желанию
или убедитесь, что пользователь может войти в систему под именем root с правильным паролем. Предпочтительно полностью отключить весь доступ к командной строке. Таким образом, устройства не могут быть изменены после установки, за исключением chroot.
Отключить список пользователей на экране входа
Как отключить список пользователей GDM3 экране входа? '
Отключить перераспределение для пользователя
https://help.gnome.org/admin/system-admin-guid/stable/lockdown-repartitioning.html.en
Отключить параметры изменения
https://help.gnome.org/admin/system-admin-guide/stable/dconf-lockdown.html.en
Отключить сохранение файлов:
https://help.gnome.org/admin/system-admin-guide/stable/lockdown-file-saving.html.en
Отключить печать (например, из firefox или libreoffice)
https://help.gnome.org/admin/system-admin-guide/stable/lockdown-printing.html.en
Нет установленного пакета ключей
Также можно заблокировать mozdown Попробуй гуглить тему.