Если я правильно понимаю, это должно работать. Обратите внимание, что «*. *» соответствует только файлам с точкой в имени (, в отличие от Windows, где он соответствует всем файлам ).
#!/bin/sh
INBOX=/dropbox/dev/inbox
OUTBOX=/dropbox/dev/outbox
for d in $(cat /dropbox/script/DirList.txt); do
if [ -d $INBOX/$d ]; then
mkdir -p $OUTBOX/$d
mv $INBOX/$d/* $OUTBOX/$d/
fi
done
Вы можете позволить systemd делать свою работу по умолчанию, а затем сразу после этого сразу же отменить ее с другим модулем systemd.
Если вы проверите с помощью systemd show swapfile.swap
, вы увидите, что все, что делает устройство, это запускает swapon
для этого файла. Когда вы вводите swapoff
вручную, подкачка снова появится при следующей загрузке.
Запуск swapoff
сразу после swapon
займет всего долю секунды, потому что нечего возвращать с диска в память. Однако вы должны убедиться, что запускаетеswapoff
после swapon
, и вы можете указать systemd сделать это с помощью After=local-fs.target
.
Поместите файл вашего модуля в качестве шаблона j2 с именем noswap.service.j2
в каталог templates/
для вашей книги воспроизведения или роли:
{{ ansible_managed|comment }}
[Unit]
Description=Disable swapfile
Documentation=man:swapon(8) man:systemd.swap(5)
After=local-fs.target
[Service]
Type=oneshot
User=root
ExecStart=/usr/sbin/swapoff -a
[Install]
WantedBy=default.target
Включите что-то подобное в свой сценарий или роль:
---
- name: Your playbook
tasks:
- name: Write noswap systemd service config file
template:
src: noswap.service.j2
dest: /etc/systemd/system/noswap.service
owner: root
group: root
mode: 0644
notify: Enable noswap service
handlers:
- name: Enable noswap service
systemd:
name: noswap
state: started
enabled: true
daemon_reload: true
После первого раза служба будет запущена во время загрузки, поэтому state: started
должен предотвращать ее повторный запуск при каждом запуске ansible.