Como reiniciar a cada 30 minutos automaticamente? -- ron campo com restart camp askubuntu Relacionado O problema

How to restart every 30 minutes automatically?


15
vote

problema

português

Eu gostaria de agendar um reinício do meu Ubuntu a cada 30 minutos. Existe algum comando ou uma maneira gráfica de fazê-lo?

english

I would like to schedule a restart of my Ubuntu every 30 minutes. Is there any command or a graphical way to do it?

     
 
 

Lista de respostas

31
 
vote

A melhor maneira de fazer isso dependerá de Por que você quer que o Ubuntu seja reiniciado a cada meia hora.

Então eu recomendo editar sua pergunta para explicar por que você deseja fazer isso.

Reiniciando a cada 30 minutos e avisando os usuários antes de cada reinicialização:

Assumir que as pessoas podem estar usando a máquina, localmente ou remotamente, é melhor evitar reiniciar o Ubuntu de debaixo deles sem nenhum aviso. Portanto, em vez de agendar o comando reboot , eu recomendo agendar o shutdown Comando para que ele avise o usuário.

Para agendar um desligamento a cada meia hora com um aviso 5 minutos antes, adicione isto a /etc/crontab :

  #minute hour    mday    month   wday    user    command */30    *       *       *       *       root    shutdown -r +5    

Você não precisa adicionar a linha do punho, que é um comentário. Eu incluí para clareza - algo como se já exista.

  • Isto irá agendar o sistema para descer para reinicializar ( ~ ❯❯❯ mtp-detect libmtp version: 1.1.3 Listing raw device(s) Device 0 (VID=0fce and PID=01e0) is UNKNOWN. Please report this VID/PID and the device model to the libmtp development team Found 1 device(s): 0fce:01e0 @ bus 5, dev 4 [...] usb_clear_halt() on INTERRUPT endpoint: No such device usb_open(): No such file or directory LIBMTP PANIC: Could not init USB on second attempt Unable to open raw device 0 OK. 0 ) cinco minutos após ( ~ ❯❯❯ mtp-detect libmtp version: 1.1.3 Listing raw device(s) Device 0 (VID=0fce and PID=01e0) is UNKNOWN. Please report this VID/PID and the device model to the libmtp development team Found 1 device(s): 0fce:01e0 @ bus 5, dev 4 [...] usb_clear_halt() on INTERRUPT endpoint: No such device usb_open(): No such file or directory LIBMTP PANIC: Could not init USB on second attempt Unable to open raw device 0 OK. 1 ) o comando é executado. Ele funciona a cada uma das meias horas ( ~ ❯❯❯ mtp-detect libmtp version: 1.1.3 Listing raw device(s) Device 0 (VID=0fce and PID=01e0) is UNKNOWN. Please report this VID/PID and the device model to the libmtp development team Found 1 device(s): 0fce:01e0 @ bus 5, dev 4 [...] usb_clear_halt() on INTERRUPT endpoint: No such device usb_open(): No such file or directory LIBMTP PANIC: Could not init USB on second attempt Unable to open raw device 0 OK. 2 ). Ver ~ ❯❯❯ mtp-detect libmtp version: 1.1.3 Listing raw device(s) Device 0 (VID=0fce and PID=01e0) is UNKNOWN. Please report this VID/PID and the device model to the libmtp development team Found 1 device(s): 0fce:01e0 @ bus 5, dev 4 [...] usb_clear_halt() on INTERRUPT endpoint: No such device usb_open(): No such file or directory LIBMTP PANIC: Could not init USB on second attempt Unable to open raw device 0 OK. 3 e < Código> ABCDEFGHIJKLMNABCDEFGHIJKLMN14 .
  • alteração ~ ❯❯❯ mtp-detect libmtp version: 1.1.3 Listing raw device(s) Device 0 (VID=0fce and PID=01e0) is UNKNOWN. Please report this VID/PID and the device model to the libmtp development team Found 1 device(s): 0fce:01e0 @ bus 5, dev 4 [...] usb_clear_halt() on INTERRUPT endpoint: No such device usb_open(): No such file or directory LIBMTP PANIC: Could not init USB on second attempt Unable to open raw device 0 OK. 5 para outra coisa para alterar o quanto os usuários têm depois de ser avisado de reinicializações.
  • ~ ❯❯❯ mtp-detect libmtp version: 1.1.3 Listing raw device(s) Device 0 (VID=0fce and PID=01e0) is UNKNOWN. Please report this VID/PID and the device model to the libmtp development team Found 1 device(s): 0fce:01e0 @ bus 5, dev 4 [...] usb_clear_halt() on INTERRUPT endpoint: No such device usb_open(): No such file or directory LIBMTP PANIC: Could not init USB on second attempt Unable to open raw device 0 OK. 6 abaixo minutos também funcionará, se preferir isso. (Similarmente, se fosse a cada 20 minutos, você poderia escrever ABCDEFGHIJKLMNABCDEFGHIJKLMN17 ou ABCDEFGHIJKLMNABCDEFGHIJKLMN18 .)
  • Certifique-se de ~ ❯❯❯ mtp-detect libmtp version: 1.1.3 Listing raw device(s) Device 0 (VID=0fce and PID=01e0) is UNKNOWN. Please report this VID/PID and the device model to the libmtp development team Found 1 device(s): 0fce:01e0 @ bus 5, dev 4 [...] usb_clear_halt() on INTERRUPT endpoint: No such device usb_open(): No such file or directory LIBMTP PANIC: Could not init USB on second attempt Unable to open raw device 0 OK. 9 está no ~ ❯❯❯ mtp-detect libmtp version: 1.1.3 Listing raw device(s) Device 0 (VID=0fce and PID=01e0) is UNKNOWN. Please report this VID/PID and the device model to the libmtp development team Found 1 device(s): 0fce:01e0 @ bus 5, dev 5 Attempting to connect device(s) Android device detected, assigning default bug flags [.. a lot of lines ..] MTP-specific device properties: Friendly name: Xperia X Synchronization partner: (NULL) Battery level 58 of 100 (58%) libmtp supported (playable) filetypes: Audio Video Interleave Folder Text file HTML file RIFF WAVE file ISO MPEG-1 Audio Layer 3 JPEG file BMP bitmap file [...] Abstract Playlist file XML file Free Lossless Audio Codec (FLAC) OK. 0 variável especificada perto do topo de ~ ❯❯❯ mtp-detect libmtp version: 1.1.3 Listing raw device(s) Device 0 (VID=0fce and PID=01e0) is UNKNOWN. Please report this VID/PID and the device model to the libmtp development team Found 1 device(s): 0fce:01e0 @ bus 5, dev 5 Attempting to connect device(s) Android device detected, assigning default bug flags [.. a lot of lines ..] MTP-specific device properties: Friendly name: Xperia X Synchronization partner: (NULL) Battery level 58 of 100 (58%) libmtp supported (playable) filetypes: Audio Video Interleave Folder Text file HTML file RIFF WAVE file ISO MPEG-1 Audio Layer 3 JPEG file BMP bitmap file [...] Abstract Playlist file XML file Free Lossless Audio Codec (FLAC) OK. 1 . Caso contrário, ABCDEFGHIJKLMNABCDEFGHIJKLMN22 (sob ABCDEFGHIJKLMNABCDEFGHIJKLMN23 ) Terá que ser invocado como ~ ❯❯❯ mtp-detect libmtp version: 1.1.3 Listing raw device(s) Device 0 (VID=0fce and PID=01e0) is UNKNOWN. Please report this VID/PID and the device model to the libmtp development team Found 1 device(s): 0fce:01e0 @ bus 5, dev 5 Attempting to connect device(s) Android device detected, assigning default bug flags [.. a lot of lines ..] MTP-specific device properties: Friendly name: Xperia X Synchronization partner: (NULL) Battery level 58 of 100 (58%) libmtp supported (playable) filetypes: Audio Video Interleave Folder Text file HTML file RIFF WAVE file ISO MPEG-1 Audio Layer 3 JPEG file BMP bitmap file [...] Abstract Playlist file XML file Free Lossless Audio Codec (FLAC) OK. 4 .

O comando sempre será executado na marca de meia hora, se a máquina estiver em alta e em execução naquele momento . Isso fará com que as paralises sejam anunciadas a cada meia hora e realizadas a 5 minutos e 35 minutos após a hora.

  • Um benefício aqui é que um administrador pode cancelar o desligamento apenas anunciado com ~ ❯❯❯ mtp-detect libmtp version: 1.1.3 Listing raw device(s) Device 0 (VID=0fce and PID=01e0) is UNKNOWN. Please report this VID/PID and the device model to the libmtp development team Found 1 device(s): 0fce:01e0 @ bus 5, dev 5 Attempting to connect device(s) Android device detected, assigning default bug flags [.. a lot of lines ..] MTP-specific device properties: Friendly name: Xperia X Synchronization partner: (NULL) Battery level 58 of 100 (58%) libmtp supported (playable) filetypes: Audio Video Interleave Folder Text file HTML file RIFF WAVE file ISO MPEG-1 Audio Layer 3 JPEG file BMP bitmap file [...] Abstract Playlist file XML file Free Lossless Audio Codec (FLAC) OK. 5 .
  • Se o computador estiver inativo durante os horários específicos, quando o comando agendado for executado, ele não será executado. Se isso não for adequado às suas necessidades, você terá que agendar suas reinicializações de maneira diferente. (Isso não é específico para o uso de ~ ❯❯❯ mtp-detect libmtp version: 1.1.3 Listing raw device(s) Device 0 (VID=0fce and PID=01e0) is UNKNOWN. Please report this VID/PID and the device model to the libmtp development team Found 1 device(s): 0fce:01e0 @ bus 5, dev 5 Attempting to connect device(s) Android device detected, assigning default bug flags [.. a lot of lines ..] MTP-specific device properties: Friendly name: Xperia X Synchronization partner: (NULL) Battery level 58 of 100 (58%) libmtp supported (playable) filetypes: Audio Video Interleave Folder Text file HTML file RIFF WAVE file ISO MPEG-1 Audio Layer 3 JPEG file BMP bitmap file [...] Abstract Playlist file XML file Free Lossless Audio Codec (FLAC) OK. 6 , mas aplicaria igualmente se você estivesse agendando ~ ❯❯❯ mtp-detect libmtp version: 1.1.3 Listing raw device(s) Device 0 (VID=0fce and PID=01e0) is UNKNOWN. Please report this VID/PID and the device model to the libmtp development team Found 1 device(s): 0fce:01e0 @ bus 5, dev 5 Attempting to connect device(s) Android device detected, assigning default bug flags [.. a lot of lines ..] MTP-specific device properties: Friendly name: Xperia X Synchronization partner: (NULL) Battery level 58 of 100 (58%) libmtp supported (playable) filetypes: Audio Video Interleave Folder Text file HTML file RIFF WAVE file ISO MPEG-1 Audio Layer 3 JPEG file BMP bitmap file [...] Abstract Playlist file XML file Free Lossless Audio Codec (FLAC) OK. 7 .) Nesse caso, por favor, edite sua pergunta para explicar suas necessidades específicas. (Eu recomendo ~ ❯❯❯ mtp-detect libmtp version: 1.1.3 Listing raw device(s) Device 0 (VID=0fce and PID=01e0) is UNKNOWN. Please report this VID/PID and the device model to the libmtp development team Found 1 device(s): 0fce:01e0 @ bus 5, dev 5 Attempting to connect device(s) Android device detected, assigning default bug flags [.. a lot of lines ..] MTP-specific device properties: Friendly name: Xperia X Synchronization partner: (NULL) Battery level 58 of 100 (58%) libmtp supported (playable) filetypes: Audio Video Interleave Folder Text file HTML file RIFF WAVE file ISO MPEG-1 Audio Layer 3 JPEG file BMP bitmap file [...] Abstract Playlist file XML file Free Lossless Audio Codec (FLAC) OK. 8 Para isso, mas seus intervalos de tempo são muito curtos.)

facilitando que os administradores impedem que as reinicializações automáticas se aconteçam:

Você pode querer configurar isso para que seja fácil para um administrador suspender todas as reinicializações agendadas automaticamente:

  ~ ❯❯❯ mtp-detect libmtp version: 1.1.3  Listing raw device(s) Device 0 (VID=0fce and PID=01e0) is UNKNOWN. Please report this VID/PID and the device model to the libmtp development team    Found 1 device(s):    0fce:01e0 @ bus 5, dev 5 Attempting to connect device(s) Android device detected, assigning default bug flags [.. a lot of lines ..] MTP-specific device properties:    Friendly name: Xperia X    Synchronization partner: (NULL)    Battery level 58 of 100 (58%) libmtp supported (playable) filetypes:    Audio Video Interleave    Folder    Text file    HTML file    RIFF WAVE file    ISO MPEG-1 Audio Layer 3    JPEG file    BMP bitmap file [...]    Abstract Playlist file    XML file    Free Lossless Audio Codec (FLAC) OK. 9   

Esses agendamentos reinicializa da mesma maneira - a cada meia hora, com cinco minutos de aviso - exceto que ele não agendará uma reinicialização se um arquivo chamado >>> mkdir -p ~/android/ >>> jmtpfs ~/android/ 0 existe em ABCDEFGHIJKLMN31 .

  • Este arquivo de controle pode ser criado por um administrador com:

      >>> mkdir -p ~/android/ >>> jmtpfs ~/android/ 2   
  • Pode ser excluído com:

      >>> mkdir -p ~/android/ >>> jmtpfs ~/android/ 3   
  • Observe que é se o arquivo existe ou não , não o que contém, que importa.

  • Se a reinicialização estiver programada e os usuários estiverem avisados, então O arquivo é criado, a reinicialização (imediatamente próxima) ainda ocorrerá.

  • Como isso funciona? Ele usa um curto-circuito -Evaluado ou operador (< Código> ABCDEFGHIJKLMNABCDEFGHIJKLMN34 ) Como abreviada para:

    .

    se >>> mkdir -p ~/android/ >>> jmtpfs ~/android/ 5 não existe, execute >>> mkdir -p ~/android/ >>> jmtpfs ~/android/ 6 .

    .

    Esta resposta explica como curto-circuito e ou ou < > Operadores podem executar >>> mkdir -p ~/android/ >>> jmtpfs ~/android/ 7 - >>> mkdir -p ~/android/ >>> jmtpfs ~/android/ 8 lógica. Para uma explicação breve, intuitiva e altamente informal, você pode ler o comando desta forma:

    .

    >>> mkdir -p ~/android/ >>> jmtpfs ~/android/ 9 existe! Ou, execute >>> fusermount -u ~/android/ 0 .

    ver >>> fusermount -u ~/android/ 1 Para ver como o próprio teste é executado.

 

The best way to do this will depend on why you want Ubuntu to restart every half hour.

So I recommend editing your question to explain why you wish to do this.

Rebooting every 30 minutes, and warning users before each reboot:

Assuming people might be using the machine, either locally or remotely, it's best to avoid restarting Ubuntu from under them without any warning. Therefore, rather than scheduling the reboot command, I recommend scheduling the shutdown command so it warns the user.

To schedule a shutdown every half hour with a warning 5 minutes before, add this to /etc/crontab:

#minute hour    mday    month   wday    user    command */30    *       *       *       *       root    shutdown -r +5 

You don't actually have to add the fist line, which is a comment. I've included it for clarity--something like it is there already.

  • This will schedule the system to go down for reboot (-r) five minutes after (+5) the command runs. It runs every at every half hour mark (*/30). See man cron and man 5 crontab.
  • Change +5 to something else to change how long users have after being warned of reboots.
  • 0,30 under minute will also work, if you prefer that. (Similarly, if it were every 20 minutes, you could write */20 or 0,20,40.)
  • Make sure /sbin is in the PATH variable specified near the top of /etc/crontab. Otherwise, shutdown (under command) will have to be invoked as /sbin/shutdown.

The command will always run on the half-hour mark, if the machine is up and running at that time. This will cause the shutdowns to be announced every half hour and performed at 5 minutes and 35 minutes past the hour.

  • One benefit here is that an administrator can cancel the just-announced shutdown with sudo shutdown -c.
  • If the computer is down during the specific times when the scheduled command is to be run, it will not run. If that's not adequate to your needs, you'll have to schedule your reboots differently. (This is not specific to the use of shutdown but would apply equally if you were scheduling reboot.) In that case, please edit your question to explain your specific needs. (I'd recommend anacron for this, but your time intervals are far too short.)

Making it easier for administrators to prevent automatic reboots from happening at all:

You might want to set this up so that it's easy for an administrator to suspend all automatically scheduled reboots:

#minute hour    mday    month   wday    user    command */30    *       *       *       *       root    [ -e /etc/noautoreboot ] || shutdown -r +5 

This schedules reboots the same way--every half hour, with five minutes warning--except that it will not schedule a reboot if a file called noautoreboot exists in /etc.

  • This control file can be created by an administrator with:

      sudo touch /etc/noautoreboot 
  • It can be deleted with:

      sudo rm /etc/noautoreboot 
  • Note that it's whether or not the file exists, not what it contains, that matters.

  • If the reboot is scheduled and users are warned, then the file is created, the (immediately upcoming) reboot will still occur.

  • How does this work? It uses a short-circuit-evaluated or operator (||) as shorthand for:

    If /etc/noautoreboot doesn't exist, run shutdown -r +5.

    This answer explains how short-circuit and and or operators can perform if-then logic. For a brief, intuitive and highly informal explanation, you can read the command this way:

    /etc/noautoreboot exists! Or, run shutdown -r +5.

    See man [ to see how the test itself is performed.

 
 
12
 
vote

Eu amo fazer isso dizendo ao gerente de sessão que queremos reiniciar. Isso pode ser feito sem permissões raiz, e recebemos uma boa janela que nos avisa que o sistema será reinicializado - que podemos cancelar a reinicialização se quisermos.

A maneira gráfica - método preferencial

Instalar >>> fusermount -u ~/android/ 2 no centro de software do Ubuntu. Se você não quiser instalar nada adicional, faça-o a maneira do terminal.

Abrir >>> fusermount -u ~/android/ 3 no DASH, crie uma nova tarefa repetida e defina estas opções:

  • Descrição: O que você quiser
  • comando: >>> fusermount -u ~/android/ 4
  • Escolha x aplicativo logo abaixo do comando.
  • hora e data, avançado:
    • minuto: 0,30

Deixe as outras opções em seus valores padrão. Clique em Adicionar .


A maneira do terminal - não há necessidade de software adicional

Executar do terminal:

  >>> fusermount -u ~/android/ 5   

Adicione esta linha:

  >>> fusermount -u ~/android/ 6   

salvar e amp; saída. Supondo que você esteja usando >>> fusermount -u ~/android/ 7 (o padrão um), pressione ctrl + o e ctrl + x .

Por favor, observe que isso não funcionará se o seu display for diferente de ABCDEFGHIJKLMNABCDEFGHIJKLMN48 , e essa é a razão pela qual esse método não é preferido. Mas, honestamente, se você estiver reiniciando seu computador a cada 30 minutos, sua exibição provavelmente será sempre >>> fusermount -u ~/android/ 9 .

não usando gnomo ou unidade?

Ambos os métodos explicados acima dependem de alguns componentes do GNOME, encontraram ambos nas sessões do GNOME e na unidade. Se você quiser fazer isso em outros ambientes (como o KDE do Kubuntu, o LXDE de Kubuntu ...) é melhor substituir o comando com este em vez disso:

   sudo apt-get install firmware-b43-lpphy-installer 0   

Isso não solicitará a confirmação e reiniciará em regime, mas funcionará em todos os ambientes, assumindo que você não desinstalou manualmente o Consolekit, é claro.

 

I love doing this by telling the Session Manager we want to reboot. This can be done without root permissions, and we get a nice window that warns us that the system is going to be rebooted -even we can cancel the reboot if we like to.

The Graphical Way - Preferred Method

Install gnome-schedule from the Ubuntu Software Center. If you don't want to install anything additional, do it the Terminal Way.

Open gnome-schedule from the dash, create a new repeated task, and set these options:

  • Description: Whatever you want
  • Command: dbus-send --print-reply --dest="org.gnome.SessionManager" /org/gnome/SessionManager org.gnome.SessionManager.Reboot
  • Choose X Application just below the command.
  • Time and Date, Advanced:
    • Minute: 0,30

Leave the other options at their default values. Click on Add.


The Terminal Way - No Need for Additional Software

Run from the terminal:

crontab -e 

Add this line:

0,30 * * * * DISPLAY=:0 dbus-send --print-reply --dest="org.gnome.SessionManager" /org/gnome/SessionManager org.gnome.SessionManager.Reboot 

Save & exit. Assuming you are using nano (the default one), press Ctrl+o and Ctrl+x.

Please notice this won't work if your DISPLAY is actually different from :0, and that's the reason this method is not preferred. But, honestly, if you are rebooting your computer every 30 minutes, your DISPLAY will most probably always be :0.

Not using Gnome or Unity?

Both methods explained above depends on some gnome components, found both on Gnome sessions and on Unity. If you want to do this on another environments (such as Kubuntu's KDE, Kubuntu's LXDE...) you better replace the command with this one instead:

dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart 

This won't ask for confirmation, and will restart inmediatly, but will work on all environments, assuming you have not manually uninstalled ConsoleKit, of course.

 
 
7
 
vote

Executar sudo apt-get install firmware-b43-lpphy-installer 1 na linha de comando e adicione esta linha ao arquivo:

sudo apt-get install firmware-b43-lpphy-installer 2

Isso informa ao sistema para executar o comando sudo apt-get install firmware-b43-lpphy-installer 3 a cada 30 minutos como root. Para uma visão geral da sintaxe de tempo, veja aqui: http://linuxmoz.com/crontab-syntax-tutorial /

 

Run sudo crontab -e from the command line and add this line to the file:

0,30 * * * * reboot

This tells the system to run the command reboot every 30 minutes as root. For an overview of the time syntax, see here: http://linuxmoz.com/crontab-syntax-tutorial/

 
 
   
   
-3
 
vote

Use cron para agendar um trabalho a cada 30 minutos. Aponte esse trabalho em um script de shell que simplesmente tem

  reboot    

nele.

Como cron é executado como root, você não deve precisar fazer nada de especial em termos de permissões.

atualização

Sim eu faço, na verdade, nunca em qualquer um dos meus sistemas permite que os crontabs baseados pelo usuário (há melhores maneiras de permitir que os usuários façam tarefas agendadas de nível de usuário), o Cron foi projetado a partir do início, puramente para automação do sistema e não para usuários para agendar tarefas comuns. Coisas como rotações de log (que ainda acontece hoje)

A reinicialização deve ser executada como root para funcionar corretamente, a alternativa é definir seu bit pegajoso, para que, quando executado como um usuário regular, ele realmente executa como root e funciona como esperado, mas em fazer o seu servidor, em seguida, abrindo o seu servidor Para permitir que os usuários regulares reiniciem a vontade.

você poderia até mesmo possivelmente automatizar uma chamada para sudo, mas eu preciso cavar nisso, não tenho certeza se você pode automatizar a necessidade de uma senha com sudo (eu não uso muitas vezes, eu prefiro apenas cair em linha reta para uma concha de raiz usando su)

Se você configurá-lo no sistema largo crontab, então tudo é executado como root, então minha declaração é precisa (eu apenas negligenciei mencionar que o sistema é usado)

Quanto à sua pergunta "Por que envolvê-lo em um script?" bem, porque não? Se o op coloque-o em um script de shell, em algum momento no futuro precisa adicionar a ele, ele simplesmente adiciona ao script, em vez de ter que abrir o crontab localizar o trabalho, removê-lo, substituí-lo por um script de shell, Em seguida, escreva um script com o antigo + novo em.

Mais de 20 anos como um administrador / desenvolvedor SYS trabalhando com sistemas, desde que Ultrix / Solaris e até mesmo Vax me ensinou um ponto importante.

Se você puder facilitar no início, então permanece fácil para o tempo de vida.

Eu realmente não entendo essa atitude "minimalista" de que muitos administradores do Sys modernos têm, onde o mínimo possível é a chave para o sucesso. A maioria dos servidores nos dias de hoje são facilmente 20 vezes + mais poderosos do que qualquer coisa que eu já comecei, e esse tipo de cenário (embrulho em scripts de shell) foi recomendado a prática, então não há realmente nenhuma discussão para não fazer isso agora.

A menos que você realmente queira ir Hardcore Unix / Linux, em cujo caso tag tudo na entrada do cron, e tocar tudo juntos da maneira que deveria ser feito: -)

No entanto, eu faço, eu sinto, e também entendo que muitos caras nos dias de hoje um jogado no fundo profundo e disseram para fazer as coisas funcionarem, como tal eles não têm tempo (e geralmente a inclinação) para se sentar e aprender sobre novos técnicas (ou antigas neste caso) ou mesmo querem brincar com essas coisas fora do trabalho.

Eu pessoalmente, tenho um único servidor entre os que eu corro que é dedicado puramente para mim para brincar, então eu posso testar coisas assim ... que é melhor a ou b, então não é sem razão que eu aconselho em qualquer um deste.

 

Use cron to schedule a job every 30 minutes. Point that job at a shell script that simply has

reboot 

in it.

Since cron runs as root, you shouldn't need to do anything special in terms of permissions.

Update

Yes I do, in fact I never on any of my systems allow user based crontabs (There are better ways of allowing users to do user level scheduled tasks) cron was designed from the very beginning purely for system automation and not for users to schedule ordinary tasks. Things such as log rotations (which still happens today)

Reboot MUST be run as root to work correctly, the alternative is to set it's sticky bit, so that when run as a regular user it actually executes as root and works as expected, but in doing that your then opening your server up to allowing regular users to reboot it at will.

You could even possibly automate a call to SUDO, but I need to dig into that one, not sure if you can automate the need for a password with SUDO (I don't use it often, i prefer to just drop straight to a root shell using SU)

If you set it up in system wide crontab then everything is run as root, so my statement is accurate (I just neglected to mention that the system wide one should be used)

As for your question "Why Wrap it in a script?" well, why not? If the OP puts it in a shell script, then at some point in the future needs to add to it, he simply adds to the script, instead of having to open crontab locate the job, remove it, replace it with a shell script, then write a script with the old + new in.

Over 20 years as a Sys Admin / Developer working with systems as far back as Ultrix / Solaris and even VAX has taught me one major point.

If you can make it easier at the beginning, then it remains easy for it's life time.

I really don't get this "Minimalistic" attitude that a lot of modern day sys admins have, where doing as little as possible is the key to success. Most servers these days are easily 20 times+ more powerful than anything I ever started out on, and this kind of scenario (Wrapping in shell scripts) was recommended practice then, so there's really no argument for not doing it now.

Unless you really want to go hardcore Unix/Linux, in which case tag it all onto the cron entry, and pipe everything together the way it ought to be done :-)

However, I do digress, and also understand that many guys these days a thrown in at the deep end and told to make things work, as such they lack the time (and usually the inclination) to sit down and learn about new techniques (or old in this case) or even want to play with this stuff outside of work.

I personally, have a single server among the ones I run that's dedicated purely for me to play around on, so I can test things like this... which is better A or B, so it's not without reason that I advise on any of this.

 
 
       
       

Perguntas relacionadas

2  Reiniciar não funciona no Ubuntu 12.04, mas desligamento  ( Restart doesnt work on ubuntu 12 04 but shutdown ) 
Eu sou um novato para Linux e Ubuntu, mas instalei-o como o segundo OS (depois do Win7) no meu netbook da Sony Vaio. Tudo está funcionando bem, exceto pelo Ub...

0  Meu PC reinicia sem aviso! Eu estou usando o Ubuntu 12.04  ( My pc restarts with no warningi am using ubuntu 12 04 ) 
Meu PC reinicia automaticamente, onde devo olhar primeiro para uma solução? Obrigado ...

2  Não pode carregar grub4dos através do kexec  ( Cannot load grub4dos through kexec ) 
Eu executo sudo kexec -l /sbin/grub.exe sudo kexec -e e obter tela preta com algumas frases. A fonte é espremida verticalmente e vejo também uma cópia ...

18  Como evitar "Assumir o cache de unidade: escreva através" Mensagem durante a reinicialização?  ( How to avoid assuming drive cache write through message during restart ) 
Alguém sabe como evitar obter esta mensagem: Assuming drive cache: write through que está aparecendo após a execução sudo shutdown -r now . Eu reini...

0  Instalando o Ubuntu 13.10 no novo MacBook Pro. Instalações então falha após a reinicialização  ( Installing ubuntu 13 10 on new macbook pro installs then fails after restart ) 
Então eu instalei o Ubuntu de um USB ao vivo. Nenhum problema lá. Eu chego ao final da instalação e me disseram para reiniciar. Eu reiniciá-lo, em seguida, pe...

1  WiFi não funciona no Ubuntu 14.04 depois de um curto período de tempo até que eu reinicie o sistema  ( Wifi doesnt work in ubuntu 14 04 after a short time until i restart the system ) 
minha situação: Eu instalei o Ubuntu 14.04 lts no meu novo laptop HP. meu problema: Meu sistema é capaz de se conectar ao meu roteador WiFi após o i...

3  Por que o Apache não é reiniciado? "Revise a situação à mão"  ( Why is apache failing to restart review the situation by hand ) 
ubuntu@fast:~$ /etc/init.d/apache2 restart * Restarting web server apache2 [fail] * There are processes named 'apac...

0  Meu logon e logout tomando muito tempo! Existe uma maneira de torná-los rápido?  ( My logon and logout taking too much time is there a way to make them fast ) 
Eu uso regularmente Bleachbit para limpar meu sistema. Embora login e logout agora levando muito tempo.É uma maneira de fazer pelo menos login mais rápido? ...

96  Apache não é capaz de reiniciar  ( Apache not able to restart ) 
Tentando reiniciar o Apache do terminal usando o seguinte comando: sudo service apache2 restart Ao executar esse comando recebendo erro abaixo: Job...

0  Wi-Fi não funciona sem reinstalar depois de cada reinício - por favor me ajude - 14.04  ( Wi fi doesnt work without reinstalling after every restart please help me 1 ) 
Wi-Fi não funciona sem reinstalar depois de cada reinício - por favor me ajude Estou usando o driver Ubuntu 14.04 e BCMWL no Dell Inspiron 15 3521 02:00.0 Ne...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.