• tetha 17 minutes ago

    Linux huge advantage: It gives you huge flexiblity and very sharp knifes.

    Linux drawback: Well, see above.

    It takes getting used to if. As I keep joking - nuking your first production system is a bit of a rite of passage as a linux admin. My first was a "mv $WORKSPACE/* $WORKSPACE/bin". I also once caused a ridiculous mess by screwing up NTP. It doesn't count 100% imo, but one of our juniors recently wanted to reset a DB on a newly installed system and did a "rm -rf /var /lib/foobar" to delete the system state. Another pretty green colleague wanted to cleanup a bunch of db dumps and ran "rm -rf /var/lib/barqux/*". It certainly removed the database dumps, and the database too.

    Both are now educated in the arts of either `find -delete`, `xargs -p`, as well as generating scripts full of individual `rm` or other calls for review. Some simple "for f in bla*; do echo 'mv $f ${f##blub#blob}' >> script; done" is a powerful technique. And I don't think they will forget this anytime soon, without anyone getting angry or anything.

    I'm mostly this chill about it because we have enough redundancy, automation and backups to let them run free and wild like this so they can learn quickly. Oh and yeah, they also learned how to reinit and/or rebuild database nodes, hah.

    • prewett 2 hours ago

      Title is incorrect, I went for horror stories and all I got was unsolicited advice. Here's a couple classic horror stories for anyone like me:

      https://www.ecb.torontomu.ca/~elf/hack/recovery.html

      https://www.toddheberlein.com/blog/2014/4/16/how-rm-rf-almos...

      • prmoustache 3 hours ago

        Relying on aliases is the worse solution in my opinion. If it is protecting you too much, you will forget the risk and once for some reason you end up on a shell with a different profile you will forget about it and run a risky command.

        • tester457 4 hours ago

          Instead of `alias rm="rm –I"` for the confirmation dialog before removing a file, I prefer to use trash-cli[0] since I can restore trashed files.

          However, I haven't found a similar solution that works on Termux.

          [0] https://github.com/andreafrancia/trash-cli

          • abnry 3 hours ago

            I do the same. My alias for rm just echos "use trash" so I don't replace its function, just disable it.

            When I really need to use rm I type /bin/rm.

            • 9dev 3 hours ago

              Bash also allows you to use \rm to override the alias. Comes in helpful at times.

            • shagie 3 hours ago

              On a per directory basis...

                   % touch -- -i
                   % touch foo
                   % touch bar
                   % rm *
                  zsh: sure you want to delete all 3 files in /Users/shagie/test [yn]? y
                  remove bar? y
                  remove foo? y
                   % ls 
                  -i
                   %
            • Filligree 4 hours ago

              You should, of course, have backups. And one form of backups which you should have are point-in-time snapshots; every ten minutes sounds good.

              I’ve lost count of the number of times I’ve deleted something I shouldn’t, but it’s never a big deal.

              • blessedwhiskers 2 hours ago

                For those that run systems with zfs, sanoid makes this fairly trivial to configure on a per-dataset basis. It's saved me more than once.

                https://github.com/jimsalterjrs/sanoid

              • Its_Padar 3 hours ago

                This is from 2021¹, so it should probably have a (2021)

                ¹See bottom of article under who the author is